[Testing] Refactor locality tests

One more round of changes. This time, the tests are modified to use NewSubTest and RunParallel.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: nmittler
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

tests/integration/pilot/OWNERS [nmittler]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/lgtm

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: nmittler, ozevren
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

tests/integration/pilot/OWNERS [nmittler,ozevren]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@nmittler: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-mixer-no_auth.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-mixer-no_auth-master

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.

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

Test name
Commit
Details
Rerun command

prow/e2e-mixer-no_auth.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-mixer-no_auth-master

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

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.

/test e2e-mixer-no_auth-master

@nmittler: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

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.

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

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-galley-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-galley-k8s-presubmit-tests-master

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.

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

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-galley-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-galley-k8s-presubmit-tests-master

prow/integ-security-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-security-k8s-presubmit-tests-master

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.

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

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-galley-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-galley-k8s-presubmit-tests-master

prow/integ-security-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-security-k8s-presubmit-tests-master

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-e2e-envoyv2-v1alpha3-master

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.

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

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-galley-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-galley-k8s-presubmit-tests-master

prow/integ-security-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-security-k8s-presubmit-tests-master

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-e2e-envoyv2-v1alpha3-master

prow/e2e-dashboard.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-dashboard-master

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.

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

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-galley-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-galley-k8s-presubmit-tests-master

prow/integ-security-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-security-k8s-presubmit-tests-master

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-e2e-envoyv2-v1alpha3-master

prow/e2e-dashboard.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-dashboard-master

prow/e2e-bookInfoTests-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-envoyv2-v1alpha3-master

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.

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

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-galley-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-galley-k8s-presubmit-tests-master

prow/integ-security-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-security-k8s-presubmit-tests-master

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-e2e-envoyv2-v1alpha3-master

prow/e2e-dashboard.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-dashboard-master

prow/e2e-bookInfoTests-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-envoyv2-v1alpha3-master

prow/e2e-bookInfoTests-trustdomain.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-trustdomain-master

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.

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

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-galley-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-galley-k8s-presubmit-tests-master

prow/integ-security-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-security-k8s-presubmit-tests-master

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-e2e-envoyv2-v1alpha3-master

prow/e2e-dashboard.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-dashboard-master

prow/e2e-bookInfoTests-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-envoyv2-v1alpha3-master

prow/e2e-bookInfoTests-trustdomain.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-trustdomain-master

prow/e2e-simpleTests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-simpleTests-master

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.

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

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-galley-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-galley-k8s-presubmit-tests-master

prow/integ-security-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-security-k8s-presubmit-tests-master

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-e2e-envoyv2-v1alpha3-master

prow/e2e-dashboard.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-dashboard-master

prow/e2e-bookInfoTests-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-envoyv2-v1alpha3-master

prow/e2e-bookInfoTests-trustdomain.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-trustdomain-master

prow/e2e-simpleTests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-simpleTests-master

prow/e2e-simpleTests-minProfile.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-simpleTestsMinProfile-master

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.

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

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-galley-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-galley-k8s-presubmit-tests-master

prow/integ-security-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-security-k8s-presubmit-tests-master

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-e2e-envoyv2-v1alpha3-master

prow/e2e-dashboard.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-dashboard-master

prow/e2e-bookInfoTests-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-envoyv2-v1alpha3-master

prow/e2e-bookInfoTests-trustdomain.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-trustdomain-master

prow/e2e-simpleTests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-simpleTests-master

prow/e2e-simpleTests-minProfile.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-simpleTestsMinProfile-master

prow/istio-pilot-multicluster-e2e.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-multicluster-e2e-master

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.

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

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-galley-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-galley-k8s-presubmit-tests-master

prow/integ-security-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-security-k8s-presubmit-tests-master

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-e2e-envoyv2-v1alpha3-master

prow/e2e-dashboard.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-dashboard-master

prow/e2e-bookInfoTests-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-envoyv2-v1alpha3-master

prow/e2e-bookInfoTests-trustdomain.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-trustdomain-master

prow/e2e-simpleTests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-simpleTests-master

prow/e2e-simpleTests-minProfile.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-simpleTestsMinProfile-master

prow/istio-pilot-multicluster-e2e.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-multicluster-e2e-master

prow/e2e_pilotv2_auth_sds.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio_auth_sds_e2e-master

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.

/test all

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

Test name
Commit
Details
Rerun command

prow/integ-mixer-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-mixer-k8s-presubmit-tests-master

prow/integ-security-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-security-k8s-presubmit-tests-master

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-e2e-envoyv2-v1alpha3-master

prow/e2e-dashboard.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-dashboard-master

prow/e2e-bookInfoTests-v1alpha3.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-envoyv2-v1alpha3-master

prow/e2e-bookInfoTests-trustdomain.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-bookInfoTests-trustdomain-master

prow/e2e-simpleTests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-simpleTests-master

prow/e2e-simpleTests-minProfile.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test e2e-simpleTestsMinProfile-master

prow/istio-pilot-multicluster-e2e.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio-pilot-multicluster-e2e-master

prow/e2e_pilotv2_auth_sds.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test istio_auth_sds_e2e-master

prow/integ-pilot-k8s-presubmit-tests.sh
ee694732304e91c122e4e2db9d9c6e7889e97618
link
/test integ-pilot-k8s-presubmit-tests-master

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.


Test OVN external addresses show on lxc network list-allocations

Depending on https://github.com/canonical/lxd/pull/14210

@tomponline Sorry, should have pinged you after https://github.com/canonical/lxd/pull/14210 was merged.
This includes tests for including OVN uplink addresses on lxc network list-allocations and should be ready to merge.

@hamistao lets wait until https://github.com/canonical/lxd/pull/14305 is merged and this PR is updated to reflect it.

@tomponline Just a reminder on this PR's history. We hadn't merged it yet because https://github.com/canonical/lxd/pull/14305 could potentially require additional tests that could be added here. But since that PR it is now closed, this should be ready to review (and hopefully merge).


[Bugfix] Addressing Draggable2D UI Lag

Description
Bug fix
What is the current behavior?
When you try to drag a UI element with a Draggable2D component, it lags behind, moving so slowly.
What is the new behavior?
Dragging UI elements works as well as dragging regular 2D sprites does with the Draggable2D component
Important Notes

My change modifies the runtime execution/behaviour of the Draggable2D component

Other information

The bug came about because of how ScreenToWorldPoint doesn't play nice with how Canvases manage space. So I thought it'd be easier to have the position-updating work by caching current and previous mouse and world positions
For better naming, I renamed the delta variable to "mouseMovement"
For optimization, I had the main camera cached in Awake
To make the component work with both UI images and Sprites, I had to incorporate two algorithms in this script. So we don't have to use if statements, I set up a dictionary containing them. See UpdateLocalPositionForUI and UpdateLocalPositionForSprites

The latest bugfix made things work off of world position again. Updated the PR OP

The latest bugfix made things work off of world position again. Updated the PR OP

Just noticed another bug: when you have a Sprite using the Event System, the drag effect gets greatly exaggerated. I'll be looking into a solution

Just noticed another bug: when you have a Sprite using the Event System, the drag effect gets greatly exaggerated. I'll be looking into a solution


Add a tutorial to dweb primer based on the p2p-flipchart tutorial from mozfest

see https://github.com/flyingzumwalt/decentralized-web-primer/issues/33
re-format the content of this tutorial using the structure of the dweb primer. This will make it easier to maintain and update over time. It also makes it easier to point people to specific parts of the tutorial if they have misunderstood something.
cc @diasdavid @pgte

I forgot to add a link to the original tutorial!

tutorial slides: https://www.slideshare.net/pgte/building-decentralised-realtime-collaborative-applications-building-google-docs-without-google


Scalar in client

Pull Request type

[ ] Bugfix
[x] Feature
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Other (please describe):

Changes in this PR
Issue #290
For query parameters of a complex scalar such as DateTime, code generation will create a query method using the Java type that represents the scalar. This is currently now correctly serialized.
Inputs are serialized using the objects toString() method. In some cases this may work, but in more complex cases (DateTime), it doesn't.
In a DGS, the serialization of scalars is implemented in a Coercing implementation. Because this code is already available, the same code should be used for serialization in the client.
In this PR a map of types mapped to a scalar implementation can optionally be passed into the GraphQLQueryRequest.
If an input has the type of one of the mapped types, its scalar will be used during serialization.
The following is an example.
GraphQLQueryRequest request = new GraphQLQueryRequest(
                ReviewsGraphQLQuery.newRequest().dateRange(new DateRange(LocalDate.of(2020, 01, 01), LocalDate.now())).build(),
                new ReviewsProjectionRoot().submittedDate().starScore(),
                Map.of(DateRange.class, new DateRangeScalar())
        );

The following is the DateRange type and custom Coercing implementation.
public class DateRange {
    private final LocalDate from;
    private final LocalDate to;

    public DateRange(LocalDate from, LocalDate to) {
        this.from = from;
        this.to = to;
    }

    public LocalDate getFrom() {
        return from;
    }

    public LocalDate getTo() {
        return to;
    }
}

public class DateRangeScalar implements Coercing<DateRange, String> {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");

    @Override
    public String serialize(Object dataFetcherResult) throws CoercingSerializeException {
        DateRange range = (DateRange) dataFetcherResult;

        return range.getFrom().format(formatter) + "-" + range.getTo().format(formatter);
    }

    @Override
    public DateRange parseValue(Object input) throws CoercingParseValueException {
        String[] split = ((String) input).split("-");
        LocalDate from = LocalDate.parse(split[0], formatter);
        LocalDate to = LocalDate.parse(split[0], formatter);
        return new DateRange(from, to);
    }

    @Override
    public DateRange parseLiteral(Object input) throws CoercingParseLiteralException {
        String[] split = ((StringValue)input).getValue().split("-");
        LocalDate from = LocalDate.parse(split[0], formatter);
        LocalDate to = LocalDate.parse(split[0], formatter);
        return new DateRange(from, to);
    }
}

When invoking the request.serialize() method, the DateRangeScalar.serialize method will be used to serialize the DateRange input.
Optional extras
We can consider providing a number of well-known scalars (date types, etc.) out of the box. This is not included in this PR yet.
Alternatives considered
This idea came out of this PR which started some discussion how we could implement this in a more extendable way.

@paulbakker I like the overall Idea, I believe its in same direction as https://github.com/amitgupta1202/dgs-framework/commit/492bf7e9c4cd6a94caa91cf757f58dea4d9d4b75 .
Potential area that needs to be looked when considering above proposal.

How it ties with ExtendedScalar implementation as it already provides implementation for ScalarTypes.
Coercing implements both serialiazation and deserialization, and as a client use case deserialization won't be used at all. May be interface Coercing can be compose of 2 different interfaces?

I'm excited about this PR, we've implemented some complex workarounds that this would resolve.  +1 to needing it to work for nested types as well.

I've added support for nested types now, and replaced most of the existing serialization logic.
All the existing tests pass.

These changes are looking really good! 🎉


Update svm to 22.3.0

Updates org.graalvm.nativeimage:svm from <IP_ADDRESS> to 22.3.0.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.graalvm.nativeimage", artifactId = "svm" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.graalvm.nativeimage", artifactId = "svm" }
}]

labels: library-update, commit-count:1

Handling that from https://github.com/coursier/coursier/pull/2635.


Allow pass through of tf vars

infracost --tfdir examples/terraform

It's a nice to have for the above command to also accept the variables required for the terraform plan. For example:
infracost --tfdir examples/terraform -var key=value

or
infracost --tfdir examples/terraform --var-file my.tfvars

Added --tfflags option in https://github.com/infracost/infracost/pull/147 which covers this use case.


Changes to .negotiatedBurn handling to always apply

closes #126
Adds ability to group payments to allow multiple payments to the same key (used to split MF burn transactions from .negotiatedBurn transactions.)
Will now always apply .negotiatedBurn

Confirmed logic and tested on 2 mainnet pools - ready to merge.


BE-6.3.0||Cassandra Channel || Message is not getting consumed and reflecting back during restarting of engine

Version Information

Software
Version(s)

BusinessEvents
6.3.0

OS Type?

OS Version?

There are 2 issues being observed:
MSG Counter variable is incrementing for data topic whenever BE-Engine is restarted
Message is not getting consumed and reflecting back during engine restart.
What is the expected behavior?
What is the actual behavior?
MSG Counter variable is incrementing for data topic whenever BE-Engine is restarted
Message is not getting consumed and reflecting back during engine restart.
Other notes on how to reproduce the issue?
Steps to reproduce:
Cassandra server should be up and running.
Pulsar should be up and running
Deploy pulsar connector NAR file in the Pulsar cluster with required configuration.
Insert a record into Cassandra database.
Start the BE-Engine. (During this msgIn counter and msgOut Counter variables for data topic will display as '1' and msg will display in engine logs )
Close the BE-Engine and restart. (Msgout counter variable value changed to '2' and msg will display in engine logs)
Please provide log files.
BE-31626.zip

There is an issue with pulsar channel implementation.

Logged issue in JIRA: https://jira.tibco.com/browse/BE-31651

Pulsar guarantees at least once delivery of messages.
User can change initial position using destination property ( set it to Latest) so that the start consuming position will be the last message.


Update Hacktoberfest image with 2019 logo

Thank you for contributing! Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md
[x] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[x] Suggesting edits to an existing topic or collection
[ ] Curating a new topic or collection

Editing an existing topic or collection
I'm suggesting these edits to an existing topic or collection:

[x] Image (and my file is *.png, square, dimensions 288x288)
[ ] Content (and my changes are in index.md)

Update Hacktoberfest image with 2019 logo.

@lex111 looks like CI is failing because the image needs to be optimized a bit.

This one uses a png, which is not the same one used in the website, I have created a PR that uses the exact *.svg used in the website

@kenyonj CI passed :heavy_check_mark:

@LeptoSpira BTW this image from official event kit.


docs: build kubevirt using local files

In certain situations, we want to build KubeVirt using local files. This howto tries to help users to easily replace and build KubeVirt with custom local files.
Signed-off-by: Alice Frosi<EMAIL_ADDRESS>
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

@vasiliy-ul many thanks! I updated the docs

/retest-required

/lgtm

/retest-required

@vasiliy-ul or @maiqueb do you mind having a second look at this and approve it?

@vasiliy-ul or @maiqueb do you mind having a second look at this and approve it?

I am not a maintainer of this repo; all I can grant is lgtm, and you already have it. Sorry.

@vasiliy-ul or @maiqueb do you mind having a second look at this and approve it?

I am not a maintainer of this repo; all I can grant is lgtm, and you already have it. Sorry.

ok, sorry I should have checked before bothering you, I had this in my memory

@vasiliy-ul or @maiqueb do you mind having a second look at this and approve it?

Still looks good from my perspective.
/approve

/retest-required

/test pull-kubevirt-e2e-k8s-1.25-sig-network

/retest-required

/test pull-kubevirt-e2e-k8s-1.24-sig-network


added my name

Please I am sorry for all the trouble we have caused you but count it all joy. Your PR is about to be merged and you will be able to see your name on this url.
To enable me to do this, READ the README again carefully, update your code with the latest and push the update. I am here for you for the next 6 hours before I close the PR so you can initiate a fresh PR which will be easier to merge.

Hi Zainab!
Please open a new PR! Remember to make a branch as you work on your changes! 🙏
We look forward to merging your next PR! :partying_face:

Hi, can i still open a new PR

Definitely


Move reaction_diff to a class within medusa.core

migrate the reaction_diff attribute of the Ensemble class to a new class in medusa.core to unclutter Ensemble.

The solution I've come up with is to split the reaction_diff object, which is currently a single dictionary, into two pandas dataframes.
The first dataframe is the "feature dataframe", which specifies the definition of each feature that varies across an ensemble. This dataframe is organized with features as rows, and feature definition attributes in the columns. For now, feature attributes will only include lower and upper bounds, since we only support reactions as features. The rownames of the feature dataframe will specify the feature_ids, unique identifiers for each feature. We will develop a convention for feature_ids that is both informative (e.g. includes the reaction id for features that are reactions) and extensible (e.g. allows for other feature types, and allows repeated feature states for a single object such as a reaction that has multiple sets of bounds within the ensemble).
The second dataframe is the "state dataframe", which specifies the on/off state for every feature in the feature dataframe for each ensemble member. This results in a binary matrix, where False values indicate that a feature is not present in an ensemble member and True values indicate that the feature is present. Each row represents an ensemble member, with rownames set to the ensemble member's id. Each column represents a feature from the feature dataframe, and the column names are the feature ids.
This will be the way we initially refactor reaction_diff, but it may make sense to change the binary state dataframe to a dataframe that can specify more than 2 states within each entry (and the feature dataframe would thus also be refactored to allow for this non-binary state indexing).


[TEVA-1702]

Updated T&Cs to reflect LA and MAT user permissions.
https://dfedigital.atlassian.net/browse/TEVA-1702

@csutter why it not working :(

@csutter why it not working :(

@csutter why it not working :(

app/views/pages/terms-and-conditions.html.slim:156 [W] TrailingWhitespace: Line contains trailing whitespace

@csutter why it not working :(

app/views/pages/terms-and-conditions.html.slim:156 [W] TrailingWhitespace: Line contains trailing whitespace


Use LexerState inside lexer to simplify things

Use a LexerState object inside the lexer instead of maintaining a separate state and on error pass a copy of the internal lexer state instead of creating a Lexer state object

Solved in commit


[BUG] <Easyrepro- When run a test case, once done successfully but the another time it throw different exceptions>

Online
Browser

[x] Chrome
[x] Firefox
[ ] IE
[ ] Edge
Whenever I run the code it works fine only first time. However, if I run again the same code without any customization it throws different exceptions every time.
Exceptions are :
-[ ]OpenQA.Selenium.ElementNotInteractableException: 'Element  could not be scrolled into view'
-[ ]System.InvalidOperationException: 'Composite Control: fullname Does not exist'

Here is the code.
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.Dynamics365.UIAutomation.Api;
using Microsoft.Dynamics365.UIAutomation.Browser;
using System;
using System.Security;
using System.Collections.Generic;
namespace Microsoft.Dynamics365.UIAutomation.Sample.Web
{
[TestClass]
public class CreatePatient
{
    private readonly SecureString _username = System.Configuration.ConfigurationManager.AppSettings["OnlineUsername"].ToSecureString();
    private readonly SecureString _password = System.Configuration.ConfigurationManager.AppSettings["OnlinePassword"].ToSecureString();
    private readonly Uri _xrmUri = new Uri(System.Configuration.ConfigurationManager.AppSettings["OnlineCrmUrl"].ToString());

    [TestMethod]
    public void WEBTestCreateNewOpportunity()
    {
        using (var xrmBrowser = new Api.Browser(TestSettings.Options))
        {
            xrmBrowser.LoginPage.Login(_xrmUri, _username, _password);
            xrmBrowser.GuidedHelp.CloseGuidedHelp();

            xrmBrowser.ThinkTime(500);
            xrmBrowser.Navigation.OpenSubArea("Service", "Contacts");

            xrmBrowser.ThinkTime(200);
            xrmBrowser.Grid.SwitchView("Patients");

            xrmBrowser.ThinkTime(2000);
            xrmBrowser.CommandBar.ClickCommand("New");

            xrmBrowser.ThinkTime(6000);
            //xrmBrowser.Entity.SetValue("mzk_gender", "Male");
            xrmBrowser.ThinkTime(3000);
            var fields = new List<Field>
            {
                new Field() {Id = "firstname", Value = "Shahrukh"},
                new Field() {Id = "lastname", Value = "Easyrepro"}
            };
            xrmBrowser.Entity.SetValue(new CompositeControl() { Id = "fullname", Fields = fields });

            //xrmBrowser.Entity.SetValue("description", "Testing the create api for Opportunity");

            xrmBrowser.CommandBar.ClickCommand("SAVE");
            xrmBrowser.ThinkTime(2000);
        }
    }
}

}

@TYLEROL I am highly thankful to you if you look into this issue. TIA

@microsoftopensource I am highly thankful to you if you look into this issue. TIA

@ggeiszle  @dtu11. I am highly thankful to you if you look into this issue. TIA

@shahrukhshakil424 - A change was published the latest <IP_ADDRESS>11 NuGet package this past Friday, as well as the latest releases/v9.1 branch.
Please let me know if this issue persists and I can take another look into this problem.
Warm Regards,
Tyler


Support development of unreleased features in Ruby SDK

Scenario/Intent
Make possible to develop features that weren't released yet in Ruby SDK without making the master unstable.
Environment Details

oneview Cookbook Version: 1.2.0

By now I created a master_i3s branch to the new unreleased Image Streamer features.

@tmiotto , it's going to be a little tricky to run the tests on Travis with unreleased SDK features. I saw #185 that posed a solution to that, but it was closed. What about just updating the Gemfile of that branch to do something like this:
# Gemfile
...
gem 'oneview-sdk', :git => 'https://github.com/HewlettPackard/oneview-sdk-ruby.git', :branch => 'master'
...

(docs here)


Improve UI of Students Data Page

can u assign me this issue i m interested to work on this issue
I assign only one issue at a time to the same mentee.

hey, i would like to work under jwoc ,can u please assign me this issue

hey, i would like to work under jwoc ,can u please assign me this issue

Ok i assign this issue to you

thankyou

i need an email and password which has access  to login

<EMAIL_ADDRESS>here is mail id

<EMAIL_ADDRESS>here is mail id

I sent you mail regarding authentication in app .Connect with me on discord on JWOC channel

ok thankyou ,please share your discord server link


[Fearure request] Convert mov to gif in the readme

COnverting mov to giv will make them accessible  in the readme page
Convert Movie(.mov) file to Gif(.gif) file in one command line in Mac Terminal
should also work on other operating systems

I used an online converter. cherry picked to master. With futures releases I will try to find another way to show de documentation.
Thanks for your comment!

If you  ever need it  in the future (and have any unix-like system with terminal), this is one liner converting all  mov files
find ./ -name "*.mov" -exec sh -c  'ffmpeg -i "$1" -pix_fmt rgb8 -r 10 "$(basename "$1" .mov).gif" && gifsicle -O3 "$(basename "$1" mov).gif" -o "$(basename "$1" mov).gif"' _ {} \;

saved on my bash snippets


Trying the below with MAG and GCC

Hey team we are trying to follow this article but we seem to be getting an authentication error on the source after we get the bearer token. Seems this works fine from MAC + GCC but not the same from MAG + GCC. any adivse?

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

ID: 8d9fd1db-042c-5f44-ee84-f1a9386fb3e3
Version Independent ID: 81cb2e37-a80c-a48a-68bd-1a03499119a7
Content: Copy data from SharePoint Online List by using Azure Data Factory - Azure Data Factory
Content Source: articles/data-factory/connector-sharepoint-online-list.md
Service: data-factory
GitHub Login: @jianleishen
Microsoft Alias: jianleishen

@islamtg
Thank you for reaching out. At this time we are reviewing the ask and will provide an update as appropriate

@islamtg : can you please help me with what MAG stands for ? I understand GCC stand for Government Community Cloud .

MAG = Microsoft Azure Government.

also for clearification I am following this article - https://docs.microsoft.com/en-us/azure/data-factory/connector-sharepoint-online-list#prerequisites

Thanks for the ask  . At this time we are reviewing the ask and we will reply back as soon as we can .
@jianleishen : Can you please here ?

Thanks @islamtg for reporting this issue.  As Jianlei mentioned, please raise a ticket with support to investigate this one further.  #please-close

So it seems the issue is more related to the way the auth works.
GCC tries to hit Azure AAD in Commercial first, and checks for the principle there.
The principle is actually in MAG. seems like the correct way to do this for Gov customers who have dual federation enabled is to.

setup App on the Commercial AAD tenant.
follow steps in the article
and Auth should work.

The work around is to use logic app, and call it via the web activity in ADF. (which was the easier route we took anyways.)


TypeError: this.preparePath is not a function when building

Laravel Mix Version: latest from npm
Node Version (node -v): 6.2.2
NPM Version (npm -v): 4.3.0
OS: Windows 10

Description:
When running any of the npm commands for building, using a simple mixfile such as  mix.js('./live.js', './dist/live.js'); Gives back the error of:
TypeError: this.preparePath is not a function
    at flattenedPaths.forEach.path (E:\Webdev\jellyrue-contentful\public\node_modules\laravel-mix\src\Manifest.js:73:25)

Steps To Reproduce:
Install latest and try building.

I'm experiencing the same issue.

Laravel Mix Version: 0.7.4
Node Version (node -v): 7.2.1
NPM Version (npm -v): 3.10.10
OS: macOS 10.12.3

@randohinn – fwiw, in the meantime, I've fallen back to v0.5.9 to get the build working.

Can either of you give me steps to reproduce this error?
Or can you open this file
node_modules\laravel-mix\src\Manifest.js:73:25

and figure out why it's saying preparePath is not a function? Do a console.log(this).

console.log(this)
{ filename: 'mix-manifest.json',
  fields: [ 'assetsByChunkName' ],
  transform: [Function: transform] }

My mix setup is in the root of a symfony app:
mix.setPublicPath('web');
mix.js('path/to/my.js', 'assets/js');

I'm guessing that you guys copied our webpack.config.js file to your project root? If so, you need to update it to reflect what we currently have.
https://raw.githubusercontent.com/JeffreyWay/laravel-mix/master/setup/webpack.config.js
Specifically, make sure that the StatsWriterPlugin section has this:
    new plugins.StatsWriterPlugin({
        filename: 'mix-manifest.json',
        transform: Mix.manifest.transform.bind(Mix.manifest),
    }),

That was indeed the problem. Thanks @JeffreyWay! If I'm not planning on using any custom configurations in webpack.config.js for now, do you think aliasing to yours is a bad idea?

If you have no plans to modify webpack.config.js, yes, definitely link to ours.
webpack --config="node_modules/laravel-mix/setup/webpack.config.js"

Wonderful, works again!


E2E tests for Project Propose

[x] Navigation in/out of pages
[x] User input validation

[x] Required fields
[x] Manager ETH address
[x] Deadline
[x] Budget
[x] Chain

[x] Error handling of on-chain read transactions

test

test

Closing this issue as completed and opening a new one for contratWrite e2e tests. There is a blocking problem with synpress that needs to be resolved first.
https://github.com/Synthetixio/synpress/issues/472


Mod version check passes on mismatching version

In theory, we have a version check that prevents players from joining a server if their version mismatches.
In particular, it was mismatch on MAJOR version IIRC. However it seems like this version check is currently not correctly implemented and as such always allows players to join.
To reproduce:

Make sure Northstar.Custom MAJOR version is set to a definitely mismatching value, e.g. do 99.0.0
Join any server
Version check should prevent joining (spoiler alert: it does not atm)

Tbh, with auto-mod-download, I'm starting to wonder if we even need a version check as we can just download the right version on demand.
The only exceptions are:

mods that are not verified (outside of LTS comp servers those basically do not exist)
Northstar.Custom which doesn't strictly follow semver anyway.

That being said, we should either fix or fully remove the check. Persoanlly, I'm tending more towards fixing atm.


NTP server is giving a time far in the future

Description
Twice in the last week, we observed that one machine in particular (out of a fleet of 100s) has had their clock drifting far in the future (more than 10hrs).
After restarting timesyncd the correct time was updated.
When i queried the ntp servers after noticing the issue the correct time was returned.
Do you have any idea what could cause this issue? Who is running 2.flatcar.pool.ntp.org?
Impact
The wrong time was set in the kernel, created confusion for the applications using the kernel time.
Environment and steps to reproduce
core@xyz ~ $ date
Wed Mar 23 02:39:07 UTC 2022
core@xyz ~ $ timedatectl timesync-status
       Server: <IP_ADDRESS> (2.flatcar.pool.ntp.org)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 1
    Reference: GPS
    Precision: 1us (-23)
Root distance: 15us (max: 5s)
       Offset: +8.783ms
        Delay: 135.816ms
       Jitter: 8.976ms
 Packet count: 1962
    Frequency: +4.611ppm
core@core-02 ~ $ date
Wed Mar 23 02:40:32 UTC 2022
core@xyz ~ $ timedatectl
               Local time: Wed 2022-03-23 02:41:03 UTC
           Universal time: Wed 2022-03-23 02:41:03 UTC
                 RTC time: Wed 2022-03-23 02:41:04
                Time zone: UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

core@xyz ~ $ sudo systemctl restart systemd-timesyncd.service
core@xyz ~ $ systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; disabled; vendor preset: disabled)
     Active: active (running) since Wed 2022-03-23 02:43:07 UTC; 11h left
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 3970539 (systemd-timesyn)
     Status: "Initial synchronization to time server <IP_ADDRESS>:123 (0.flatcar.pool.ntp.org)."
      Tasks: 2 (limit: 61283)
     Memory: 860.0K
     CGroup: /system.slice/systemd-timesyncd.service
             └─3970539 /usr/lib/systemd/systemd-timesyncd

Mar 23 02:43:06 xyz systemd[1]: Starting Network Time Synchronization...
Mar 23 02:43:07 xyz systemd[1]: Started Network Time Synchronization.
Mar 22 15:39:16 xyz systemd-timesyncd[3970539]: Initial synchronization to time server <IP_ADDRESS>:123 (0.flatcar.pool.ntp.org).
core@core-02 ~ $ date
Tue Mar 22 15:39:24 UTC 2022

Expected behavior
[ describe what you expected to happen at 4. above but instead got an error ]
Additional information
Please add any information here that does not fit the above format.

@AlexisMontagne I'm seeing the same issue using Flatcar stable 3033.2.0 and with:
ServerName=0.flatcar.pool.ntp.org
ServerAddress=<IP_ADDRESS>

In my case, ~11 hours in the future.

These nodes come from https://www.ntppool.org/en/, the Flatcar project doesn't control them. The 'X.flatcar.pool.ntp.org' is an alias assigned to a vendor, but refers to the public pool of machines.
For <IP_ADDRESS> I found a reference to something like this happening last year: https://forum.proxmox.com/threads/ntp-node-has-backed-in-time-for-5h.82767/.
There is nothing we can do here.

You may consider overriding the server to use a different pool that you trust or following the advice from ntpool.org:

If you are synchronising a network to pool.ntp.org, please set up one of your computers as a time server and synchronize the other computers to that one.


Add changes

Ref: https://github.com/step-security/harden-runner/issues/173#issuecomment-1257085236

Sample run: https://github.com/h0x0er/cache-experiment2/actions/runs/3129595971/jobs/5078882988


Can we have coverage data of test cases?

Is your feature request related to a problem? Please describe.

search the cmake files, we have no coverage flags in this project like the external project - json, we can not know, how much code lines we've tested.
Describe the solution you'd like

pls add the coverage flags in the cmake system for this project.
Additional context

Thank you so much.

Also note that if you want automated coverage it would need to be done with meson, not CMake. I don't use CMake for the CI system (and dislike CMake in general).

okay my mistake. So can we support coverage with meson?

If you want to make a PR for this, sure.

If you want to make a PR for this, sure. Otherwise I'm not going to bother.

Okay. I'll try.Thank you~

I should probably reiterate that all the public API's in the library are tested, and it passes the toml-test suite, as well as a few hundred more custom cases, so there'd be very little point at this stage. I'm probably not going to make any changes based on any coverage reports.

yes. I've tried this testsuites.run very quickly and there are 333 for decode 99 for encode.
Just curious for the coverage rate.
by the way, I have two failed cases. it would be very thankful if you can help, I'm trying to figure it out at the meantime as well.
`FAIL valid/key/escapes
decode TOML from encoder:
toml: line 1: unexpected '=': key name appears blank
 input sent to parser-cmd:
   {
     "\n": {
       "type": "string",
       "value": "newline"
     },
     "\"": {
       "type": "string",
       "value": "just a quote"
     },
     "\"quoted\"": {
       "quote": {
         "type": "bool",
         "value": "true"
       }
     },
     "a.b": {
       "À": {}
     },
     "backsp\u0008\u0008": {},
     "À": {
       "type": "string",
       "value": "latin capital letter A with grave"
     }
   }

 output from parser-cmd (stdout):
   = 'newline'
   '"' = 'just a quote'
   'À' = 'latin capital letter A with grave'

   ['"quoted"']
   quote = true

   ['a.b'.'À']

   ["backsp\b\b"]

 want:
   "\n" = "newline"
   "\u00c0" = "latin capital letter A with grave"
   "\"" = "just a quote"

   ["backsp\b\b"]

   ["\"quoted\""]
   quote = true

   ["a.b"."\u00c0"]

FAIL valid/key/space
decode TOML from encoder:
toml: line 5 (last key "" tbl ""): expected '.' or '=', but got 't' instead
 input sent to parser-cmd:
   {
     " c d ": {
       "type": "integer",
       "value": "2"
     },
     " tbl ": {
       "\ttab\ttab\t": {
         "type": "string",
         "value": "tab"
       }
     },
     "a b": {
       "type": "integer",
       "value": "1"
     }
   }

 output from parser-cmd (stdout):
   ' c d ' = 2
   'a b' = 1

   [' tbl ']
    tab     tab      = 'tab'

 want:
   # Keep whitespace inside quotes keys at all positions.
   "a b"   = 1
   " c d " = 2

   [ " tbl " ]
   "\ttab\ttab\t" = "tab"

toml-test [./toml-test/tt_encoder]: using embedded tests:  97 passed,  2 failed
`

My guess is the JSON library I'm using is butchering the inputs somehow; both of those tests are also part of toml++'s tests, and both pass:

valid/key/escapes
valid/key/space

(my test suite includes C++ versions of all of toml-test)

How far do you get by just configuring Meson with the core compiler option -Db_coverage=true, then running the testsuite + the builtin ninja targets Meson creates to run the coverage tools if they are detected as installed?

@eli-schwartz Good question; I have a vague memory of that being more difficult when I first investigated how coverage worked, but it seems quite simple. I'll try to find some time one weekend and look into it.

My guess is the JSON library I'm using (or my toml-test encoder) is butchering the inputs somehow; both of those tests are also part of toml++'s tests, and both pass:
* [valid/key/escapes](https://github.com/marzer/tomlplusplus/blob/master/tests/conformance_burntsushi_valid.cpp#L1783-L1804)

* [valid/key/space](https://github.com/marzer/tomlplusplus/blob/master/tests/conformance_burntsushi_valid.cpp#L1967-L1980)

(my test suite includes C++ versions of all of toml-test)

I'm not so sure that's the case; it's entirely possible I'm missing something here, but I did this:
% cat test.toml
"a"    = "x\ty"
"a\tb" = "x\ty"

% cat test.cpp
#include <iostream>
#include "toml.hpp"

int main() {
	auto config = toml::parse_file("test.toml");
	std::cout << config << "\n";
	return 0;
}

% c++ -std=c++17 test.cpp

% ./a.out
a = 'x	y'
a	b = 'x	y'

% ./a.out | hexdump -C
00000000  61 20 3d 20 27 78 09 79  27 0a 61 09 62 20 3d 20  |a = 'x.y'.a.b = |
00000010  27 78 09 79 27 0a                                 |'x.y'.|

And that output seems wrong to me? It should have quotes around that key name.
This is with 941341f.

Hmmmm, yeah, that output is certainly wrong. Guess I better give it another look O_O

The valid/key/escapes still fails for the "\n" = "newline" test; this gets written back as a literal newline rather than a \n escape:
'
' = 'newline'

(it doesn't break anything for me, it just came up on https://arp242.github.io/toml-test-matrix/)

Ah crap. Thanks for letting me know.
Also that TOML matrix project is pretty cool!

Should be good now @arp242

Yup, all pass now :+1:


Excessive migrations

I think 2 migrations better to join to one

yes, phalcon auto generate the migration version.
but i agree, all the generated migrations should removed and left the latest version as it is a git, we can checkout the previous version


[New game]:

🎮 Game Request
Implement a Hangman game where players guess letters to reveal a hidden word. Incorrect guesses will result in parts of a hangman being drawn. The game ends when the word is guessed or the hangman is fully drawn.
Point down the features
Game points:
Display the hidden word with underscores representing unguessed letters.
Show the letters guessed by the player.
Provide an input method for the player to guess letters.
Display the hangman drawing that progresses with each incorrect guess.
Randomly select a word from a predefined list.
Check if the guessed letter is in the word and update the displayed word accordingly.
Track incorrect guesses and update the hangman drawing.
Determine win/loss conditions and display appropriate messages.
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @anushka29github !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

Hey @anushka29github!
We are already having a similar game request in #4849 👀
Make sure you come up with a cool unique idea 😀
Waiting for your new game idea 💗.

Hey @anushka29github ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


In a branch, does the label of the vertex needs to be consecutive?

Hi,
Do we require that the vertices on a branch have consecutive labels?
To test this, I run
tree = ch.Tree_Chinampa(0,{0:{'activations':[[3,0],[5,0]],'branches':[1,2]},
                           1:{'activations':[[0,0],[4,0]],'branches':[]},
                           2:{'activations':[[1,2],[2,2]],'branches':[]}
                           }
                       )
print(f" will the vertex 5 be activated at time 5? {tree.will_vertex_be_activated(5,5)}, how about at time 6? {tree.will_vertex_be_activated(5,6)}") ```
And it returned

> ---------------------------------------------------------------------------
RecursionError                            Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_10060\329558848.py in <module>
      6                        )
      7 print(f"if we activate the vertices 0,1, 4, 5 at time 0, the vertices 2,3 at time 2, ")
----> 8 print(f" will the vertex 5 be activated at time 5? {tree.will_vertex_be_activated(5,5)}, how about at time 6? {tree.will_vertex_be_activated(5,6)}") #The node index is global i.e, node 0 is in branch 1, node 2 in branch 2, etc. -Luke

~\Documents\GitHub\chinampas\chinampas\chinampa.py in will_vertex_be_activated(self, n, t_0)
    271         '''
    272         if self.chain.lV <= n and n<= self.chain.rV:
--> 273             self.extend_chain()
    274             return self.chain.will_vertex_be_activated(n,t_0)
    275

~\Documents\GitHub\chinampas\chinampas\chinampa.py in extend_chain(self)
    251             branch_times = []
    252             for branch in self.branches:
--> 253                 times = self.when_will_vertex_be_activated(branch.chain.rV)
    254
    255                 for time in times:

~\Documents\GitHub\chinampas\chinampas\chinampa.py in when_will_vertex_be_activated(self, n)
    285         '''
    286         if self.chain.lV <= n and n<= self.chain.rV:
--> 287             self.extend_chain()
    288             return list(set(self.chain.when_will_vertex_be_activated(n)))
    289

... last 2 frames repeated, from the frame below ...

~\Documents\GitHub\chinampas\chinampas\chinampa.py in extend_chain(self)
    251             branch_times = []
    252             for branch in self.branches:
--> 253                 times = self.when_will_vertex_be_activated(branch.chain.rV)
    254
    255                 for time in times:

RecursionError: maximum recursion depth exceeded while calling a Python object

I see, I think I just need to add it to the description. Ill close this Issue then.


Cannot call postgremql4.dll::pmql_connect

Hi,
I found this project very interesting, so I wanted to give it a try. When load the EA to a chart, I get an error that says Cannot load postgremql4.dll [126] followed by a Cannot call postgremql4.dll::pmql_connect, postgremql4.dll is not loaded and the EA been removed.
How can I solve this?

i installed all these packages
and now its working for me


ESM bedding   Problem

When I follow the readme, in the following step
(diffdock) icer@ubuntu:~/my_prj/diffdock/DiffDock$ HOME=esm/model_weights python esm/scripts/extract.py esm2_t33_650M_UR50D data/prepared_for_esm.fasta data/esm2_output --repr_layers 33 --include per_tok
Downloading: "https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t33_650M_UR50D.pt" to esm/model_weights/.cache/torch/hub/checkpoints/esm2_t33_650M_UR50D.pt
I found it is still here, can not continue.

I find it is downloading a large file, maybe need a long time

This command is indeed downloading the weights of the ESM model which are required for generating the language model embeddings


Weight initialization Error on using pretrained model in pytorch

I am getting this error
Weights of BertForMultiLable not initialized from pretrained model: ['classifier.weight', 'classifier.bias']
Weights from pretrained model not used in BertForMultiLable: ['cls.predictions.bias', 'cls.predictions.transform.dense.weight', 'cls.predictions.transform.dense.bias', 'cls.predictions.transform.LayerNorm.weight', 'cls.predictions.transform.LayerNorm.bias', 'cls.predictions.decoder.weight', 'cls.seq_relationship.weight', 'cls.seq_relationship.bias']

while using the provided pretrained biobert from here in this repo.
here is the issue for reference.
Is there some issue in the model?

Hi Aditya,
Can you clarify what you are doing that gets this error? Are you trying to use clinical BERT model in the instructions provided by the Bert-Multi-Label-Text-Classification repo? Is the issue that it works when you use BERT but not clinical BERT or do you get the same error regardless of which BERT model you use?

Closing this issue due to lack of activity. Feel free to reopen and provide more details.

Hey! I get the same error when I am trying use load the clinicalbert model as a BERT model in BertforTokenClassification with transformers. Do you know the reasons for the same?


repo sync

This is an automated pull request to sync changes between the public and private repos.
:robot: This pull request should be merged (not squashed) to preserve continuity across repos, so please let a bot do the merging!

Donald Trump # MAGA ETC


Can't resolve 'canvas' on next.js serverless app

What's the problem
I built a next.js application with serveless option, but simply importing this library it throws this error:
Failed to compile.
ModuleNotFoundError: Module not found: Error: Can't resolve 'canvas' in '/.../node_modules/jsdom/lib/jsdom'
> Build error occurred

I already tried to add canvas library but this doesn't fix the problem and it throws another error.
Step to reproduce
Add to next.config.js:
module.exports = {
  target: 'serverless'
}

Run next build
Basic Info:

"isomorphic-dompurify": "^0.12.0",
"next": "^10.0.8",
"react": "^17.0.1",
"react-dom": "^17.0.1"

This issue could be related to #35 , but i don't use umijs.

@EnricoNapolitan did you find a solution? I'm encountering something similar with Gatsby.

Thanks for your detailed bug report @EnricoNapolitan. Since many people notice this issue, I will try to find a solution myself.
Linking it here just for reference https://github.com/kkomelin/isomorphic-dompurify/pull/36

I think I've seen this come up with JSDOM before. JSDOM marks canvas as an optional dependency https://github.com/jsdom/jsdom/blob/master/package.json#L58

Hi @NicholasEllul ,
Thanks for the info. I'd like to try to add Canvas as an optional dependency and see if it fixes the issue.

I've reproduced the bug locally. Will try to find a solution.

I've have tried to add canvas as a normal dependency but it caused new errors on next build:
info  - Creating an optimized production build
Failed to compile.

./node_modules/canvas/build/Release/canvas.node 1:0
Module parse failed: Unexpected character '' (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
(Source code omitted for this binary file)

> Build error occurred
Error: > Build failed because of webpack errors
    at [my path]/nextjs-dompurify/node_modules/next/dist/build/index.js:15:918
    at async [my path]/nextjs-dompurify/node_modules/next/dist/build/tracer.js:3:470
npm ERR! code 1
npm ERR! path [my path]/nextjs-dompurify
npm ERR! command failed
npm ERR! command sh -c next build

npm ERR! A complete log of this run can be found in:
npm ERR!     [my path]/.npm/_logs/2021-04-30T11_28_12_323Z-debug.log

Thanks @NicholasEllul . If adding canvas as an optional dependency to isomporphic-dompurify doesn't solve the problem and adding it as a normal dependency can potentially break things, I don't have other choices for now to just mention this issue in the documentation - that our project doesn't work for Next.js serverless setup and some other server-side environments. Unless you see any other options.

I have a more or less similar issue while trying to use isomorphic-dompurify with AWS cdk and esbuild, got following errors
the 2 warnings something to do with esbuild, I assume
 > node_modules/jsdom/lib/jsdom/utils.js: error: Could not resolve "canvas" (mark it as external to exclude it from the bundle)
    160 │   const Canvas = require("canvas");
        ╵                          ~~~~~~~~

 > node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js: warning: Indirect calls to "require" will not be bundled (surround with a try/catch to silence this warning)
    31 │ const syncWorkerFile = require.resolve ? require.resolve("./xhr-sync-worker.js") : null;
       ╵                        ~~~~~~~

 > node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js: warning: "./xhr-sync-worker.js" should be marked as external for use with "require.resolve"
    31 │ const syncWorkerFile = require.resolve ? require.resolve("./xhr-sync-worker.js") : null;

@nnduc1994 Hi, did you resolve this error, please?

Just ran into this in Gatsby, any updates? Also receiving the same "Module parse failed..." error if I try to use this package with canvas installed. I'll switch to using sanitize-html for now instead.

I was also having this issue with SvelteKit using the Node adapter. Installing canvas solved the issue, but it would be nice if there were also a solution for serverless.

Still seeing this issue using gatsby and trying to use the isomorphic-dompurify in a template file

Still seeing this issue using gatsby and trying to use the isomorphic-dompurify in a template file

Same for me here

Noting that this does not work (for me at least) on Next 13 not even on Serverless but normal out of the box Next app

@Antonio-Laguna

Noting that this does not work (for me at least) on Next 13 not even on Serverless but normal out of the box Next app

This one is new. Do you use the experimental app/ folder? Could you please give me more info?

@kkomelin yes that was on the experimental app/ folder using use client. It was just a quick test since I'm trying to build a library and we're leveraging that package on a component

Thank you @Antonio-Laguna. I don't think there is much we can do here at the isomorhic-dompurify layer because it's just a tiny wrapper around dompurify and jsdom, and the problem lays in the way jsdom communicates with canvas dependency.
But if you have any ideas how we can fix it through this package, please let me know.

Is this tracked at JSDOM level somehow though?
This might be extremely simplistic but shouldn't dompurify leverage the DOM instead of JSDOM which is intended to be leveraged only at Node level?

@Antonio-Laguna
Usually the error message looks like this:

Failed to compile.
ModuleNotFoundError: Module not found: Error: Can't resolve 'canvas' in '/.../node_modules/jsdom/lib/jsdom'
Build error occurred

What's your error message?

As for the server vs client code, modern JS frameworks flirt a lot with the server (SSR, Server Components, etc) and Next is not an exception.
Dompurify itself leverages DOM and isomorphic-dompurify utilizes JSDOM to make dompurify work on the server.

For usage of DOMPurify in Next.js without the wrapper package isomorphic-dompurify, here is a demo of a simple version:

https://github.com/vercel/next.js/issues/46893#issuecomment-1458595411

Mainly the code is this (this is a Server Component - if you aren't using the app/ directory, then do the DOMPurify() call in getServerSideProps or an API Route):
import DOMPurify from "dompurify";
import { JSDOM } from "jsdom";

export default function Home() {
  return (
    <div
      dangerouslySetInnerHTML={{
        __html: DOMPurify(new JSDOM("<!DOCTYPE html>").window).sanitize(
          ""
        ),
      }}
    />
  );
}

There is also some required Next.js configuration for this, to resolve the webpack bundling errors:
next.config.js
/** @type {import("next").NextConfig} */
module.exports = {
  reactStrictMode: true,
  webpack: (config) => {
    config.externals = [...config.externals, "canvas", "jsdom"];
    return config;
  },
};

Thanks @karlhorky. As I already asked here https://github.com/cure53/DOMPurify/issues/400#issuecomment-1458624807, since isomorphic-dompurify does the same under the hood as you illustrated in the code example, I guess it will work just fine with the webpack configuration you suggested. Can you test it for me?

Should be fine, try modifying the CodeSandbox demo to use your library instead of dompurify:
https://codesandbox.io/p/sandbox/lingering-river-j5fpi7?file=%2Fapp%2Fpage.tsx

Should be fine, try modifying the CodeSandbox demo to use your library instead of dompurify:
https://codesandbox.io/p/sandbox/lingering-river-j5fpi7?file=%2Fapp%2Fpage.tsx

Just confirmed. Your webpack fix works for isomorphic-dompurify as well.

For usage of DOMPurify in Next.js without the wrapper package isomorphic-dompurify, here is a demo of a simple version:

Using dompurify with SSR or Server Component fails with webpack error vercel/next.js#46893 (comment)

Mainly the code is this (this is a Server Component - if you aren't using the app/ directory, then do the DOMPurify() call in getServerSideProps or an API Route):
import DOMPurify from "dompurify";
import { JSDOM } from "jsdom";

export default function Home() {
  return (
    <div
      dangerouslySetInnerHTML={{
        __html: DOMPurify(new JSDOM("<!DOCTYPE html>").window).sanitize(
          ""
        ),
      }}
    />
  );
}

There is also some required Next.js configuration for this, to resolve the webpack bundling errors:
next.config.js
/** @type {import("next").NextConfig} */
module.exports = {
  reactStrictMode: true,
+ webpack: (config) => {
+   config.externals = [...config.externals, "canvas", "jsdom"];
+   return config;
+ },
};

Holy Crap the next config fix worked for me 🥳

Should be fine, try modifying the CodeSandbox demo to use your library instead of dompurify:
https://codesandbox.io/p/sandbox/lingering-river-j5fpi7?file=%2Fapp%2Fpage.tsx

@kkomelin @karlhorky Can you put more details into this why webpack changes fix this issue ?

Don't know too much about it, check out the details I know here:

https://github.com/vercel/next.js/issues/46893#issuecomment-1458595411

i still have this error
Basic Info:
    "@types/react-pdf": "^6.2.0",
    "next": "13.2.4",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-pdf": "^6.2.2"

Error Message
./node_modules/pdfjs-dist/build/pdf.js:10759:0
Module not found: Can't resolve 'canvas'

https://nextjs.org/docs/messages/module-not-found

Import trace for requested module:
./node_modules/react-pdf/dist/cjs/entry.js
./component/PDF/index.tsx

I still didn't update it to the next 13.3 since when I run yarn dev on windows, it crashes and throws errors

@abedshaaban I found a way to resolve this when using react-pdf in Next Js 13 (app directory)

The best way
In your app directory, whatever/page.tsx have this

"use client"
import { pdfjs } from "react-pdf";
pdfjs.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.16.105/pdf.worker.min.js';

In your next.config.js have this
/** @type {import('next').NextConfig} */
const nextConfig = {
  experimental: {
    appDir: true,
  },
  future: { webpack5: true },
  webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {
      config.resolve.alias.canvas = false
      config.resolve.alias.encoding = false
      return config
  }
}

module.exports = nextConfig

Let me know if it doesn't work. Happy to help out. This took me waaaay too long to figure out. Hopefully it will help someone get there faster! :)

@mephobic  i had a solution similar to that
webpack: (config) => {     config.externals.push({ sharp: 'commonjs sharp', canvas: 'commonjs canvas' })     return config
However, when I try yours, I get an error when I refresh the page with the error of Error Decoder, In the minified production build of React, we avoid sending down full error messages in order to reduce the number of bytes sent over the wire.
what do you think the problem is ?

@mephobic i had a solution similar to that webpack: (config) => { config.externals.push({ sharp: 'commonjs sharp', canvas: 'commonjs canvas' }) return config
However, when I try yours, I get an error when I refresh the page with the error of Error Decoder, In the minified production build of React, we avoid sending down full error messages in order to reduce the number of bytes sent over the wire.
what do you think the problem is ?

It's difficult to debug without seeing what your error is. Can you try
a. Running the code on your local and get the full error (because a local development code doesn't minify) or
b. Run this -
const nextConfig = {   // ...   productionBrowserSourceMaps: true,   // ... };

For usage of DOMPurify in Next.js without the wrapper package isomorphic-dompurify, here is a demo of a simple version:

Using dompurify with SSR or Server Component fails with webpack error vercel/next.js#46893 (comment)

Mainly the code is this (this is a Server Component - if you aren't using the app/ directory, then do the DOMPurify() call in getServerSideProps or an API Route):
import DOMPurify from "dompurify";
import { JSDOM } from "jsdom";

export default function Home() {
  return (
    <div
      dangerouslySetInnerHTML={{
        __html: DOMPurify(new JSDOM("<!DOCTYPE html>").window).sanitize(
          ""
        ),
      }}
    />
  );
}

There is also some required Next.js configuration for this, to resolve the webpack bundling errors:
next.config.js
/** @type {import("next").NextConfig} */
module.exports = {
  reactStrictMode: true,
+ webpack: (config) => {
+   config.externals = [...config.externals, "canvas", "jsdom"];
+   return config;
+ },
};

This works like a charm! Thank you @Daggron

For me, I'm working with Next.js 13 server component and this worked for me:
Server Component SVGIcon:
import { sanitize } from 'isomorphic-dompurify'

export default async function SVGIcon({
  src,
  width,
  height,
  className,
}: ISVGIcon) {
  // const headersList = headers()
  // console.log({ headersList })

  const iconResponse = await fetch(`http://localhost:3000${src}`)
  const svgResult = await iconResponse.text()

  return svgResult ? (
    <div
      className={className}
      style={{ width: `${width}px`, height: `${height}px` }}
      dangerouslySetInnerHTML={{ __html: sanitize(svgResult) }}
      aria-hidden={true}
    />
  ) : null
}

next.config.js:
module.exports = {
  reactStrictMode: true,
+ webpack: (config) => {
+   config.externals = [...config.externals, "jsdom"];
+   return config;
+ },
};

Just need to install both isomorphic-dompurify and jsdom, no need to worry about canvas.

Still valid in 1.8.0
My Next.js build warns not only about missing 'canvas', but actually 3 missing deps from js-dom already
Can't resolve 'canvas'
Can't resolve 'bufferutil'
Can't resolve 'utf-8-validate'
Any luck with those fixes?

It works now by only adding this in your next.config.js:
module.exports = {
reactStrictMode: true,
webpack: (config) => {
config.externals = [...config.externals, "canvas", "jsdom"];
return config;
},
}
and then you can copy this example in your component https://konvajs.org/docs/react/Transformer.html
works fine in : "next": "^13.4.20-canary.0"

Whats Wrong with my code its giving me error Load failed
'use client'
import React,{useEffect, useState} from 'react'
import { Document, Page, pdfjs } from "react-pdf";
pdfjs.GlobalWorkerOptions.workerSrc =<EMAIL_ADDRESS>const PdfViewer = ({SelectedFileData}) => {
const [numPages, setNumPages] = useState();
const [pageNumber, setPageNumber] = useState(1);
function onDocumentLoadSuccess({ numPages }: { numPages: number }): void {
setNumPages(numPages);
}
return (

<Document file={"https://ina.org.au/wp-content/uploads/2022/05/Placeholder-PDF-1.pdf"} onLoadSuccess={onDocumentLoadSuccess}>

  )
}
export default PdfViewer

@MrUsmanDev why do you think it's related to this particular issue?

After trying out a lot of the suggested fixes (but for Nuxt instead of Next) we eventually switched to the following npm package:
sanitize-html
After installing this package and following the instructions on the link, the builds succeeded again! :)

Happy to hear @brandon-v-seeters. Thanks for sharing


Action fails: references to workflows must be rooted in '.github/workflows'

I'm not sure what I'm doing wrong. Please help me out. The log is here.

You're missing the steps property. Currently you have
jobs:
  archive:
    name: Wayback Machine
    uses<EMAIL_ADDRESS>    with:
      url: spsharan.com

but you should have
jobs:
  archive:
    steps:
      - name: Wayback Machine
    	uses<EMAIL_ADDRESS>        with:
          url: spsharan.com

Check out the GitHub Actions workflow syntax documentation^1 for a complete reference


Support for Gradle plugin 2.0

Seems like aspectj plugin doesn't work with new gradle plugin. I'm using 2.0.0-beta2 with AS 2.0 preview9
I've got compile time error
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithInstantRunSlicerForDebug'.
> java.lang.ArrayIndexOutOfBoundsException (no error message)

here is my simple aspect
  @DeclareMixin(value =<EMAIL_ADDRESS>*")
    public AspectIntefrace declareStuff(final Object instance) {
        return new AspectIntefrace() {
            @Override
            public void showToast() {
                Toast.makeText(((Context) instance), "hello", Toast.LENGTH_SHORT).show();
            }
        };
    }

ps: i've disabled InstantRun and it compiles without errors now. But my mixin doesnt apply to the class so it is crashes on class casting stage:
((AspectIntefrace) this).showToast();

This code works ok on gradle plugin 1.5.0

Hello!
I've just deployed 1.1.2 artifact that has a fix for slicer task. I've been tested it in my example project and everything works fine. Even more, gradle correctly understands whether aspectJ task made any changes or not.

It works. Thanks!


v6 Scan REST API

Create new v6 scan REST APIs. There are no changes from v5. Create new v6 versions of all scan-related JSON schemas. Look at changing POST /v6/scans/ so that user does not submit name (Scale-generated instead from title). Add docs to new v6 section of the REST API docs.

possibly remove name?


DragoonCapes.BushCape.Attack_FireProjectileBurst_Prefix

Here is my Log, includes the list of mods i'm using.  I have a bush cape it was sitting in a box. Not sure what triggered the error unfortunately. When i noticed it i had just left combat and portaled to my base.
 Please add a custom filter or an audioclip to the audiosource (Amb_MainMenu).
[Warning:Server Sync Fix] Mod Tequila.DvergrPieces has outdated server sync.
[Warning:Server Sync Fix] Updated server sync for Tequila.DvergrPieces.
[Warning:Server Sync Fix] Updated server sync for Tequila.DvergrPieces PieceManager.
[Warning:Server Sync Fix] Mod vapok.mods.shieldmebruh has outdated server sync.
[Warning:Server Sync Fix] Updated server sync for vapok.mods.shieldmebruh.
[Info   :StartupAccelerator] Batch-patched 252 methods after FejdStartup.Awake in 810 ms
[Warning:DragoonCapes] Mod Statuses Enabled: True
[Warning: Unity Log] Unable to load font face for [Norse SDF]. Make sure "Include Font Data" is enabled in the Font Import Settings.
[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
DragoonCapes.BushCape.Attack_FireProjectileBurst_Prefix (Attack __instance) (at <0677be0b2c3c4aeca444ceb584a8929c>:0)
(wrapper dynamic-method) Attack.DMDAttack::FireProjectileBurst(Attack)
(wrapper dynamic-method) Attack.DMDAttack::ProjectileAttackTriggered(Attack)
(wrapper dynamic-method) Attack.DMDAttack::OnAttackTrigger(Attack)
Humanoid.OnAttackTrigger () (at :0)
CharacterAnimEvent.OnAttackTrigger () (at :0)
[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
CombatOverhaulREwrite.Patches.ProjectilePatch.OnHit_Prefix (Projectile __instance, UnityEngine.Collider collider, UnityEngine.Vector3 hitPoint, System.Boolean water) (at <06ae174f1a7e4b50af2ead5a7d440660>:0)
(wrapper dynamic-method) Projectile.DMDProjectile::OnHit(Projectile,UnityEngine.Collider,UnityEngine.Vector3,bool)
Projectile.FixedUpdate () (at :0)
[Info   : Unity Log] 02/17/2024 17:18:01: Cloud Save: 87923 bytes. /characters/jester test two.fch.new
[Info   : Unity Log] 02/17/2024 17:18:01: Steam writing file chunks 1 / 1, (87923 bytes)
[Info   : Unity Log] 02/17/2024 17:18:01: Steam Cloud Move: 76996 bytes. /characters/jester test two.fch -> /characters/jester test two.fch.old
[Info   : Unity Log] 02/17/2024 17:18:01: Steam writing file chunks 1 / 1, (76996 bytes)
[Info   : Unity Log] 02/17/2024 17:18:01: Steam Cloud Move: 87923 bytes. /characters/jester test two.fch.new -> /characters/jester test two.fch
[Info   : Unity Log] 02/17/2024 17:18:01: Steam writing file chunks 1 / 1, (87923 bytes)
[Info   : Unity Log] 02/17/2024 17:18:01: Cloud Copy: 87923 bytes. characters/jester test two.fch -> characters/jester test two_backup_auto-20240217171801.fch
[Info   : Unity Log] 02/17/2024 17:18:01: Steam writing file chunks 1 / 1, (87923 bytes)

I"m trying to get you some repro steps but here is the error again. I do have a Bush Cape, i am not wearing it when this happened.
[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
DragoonCapes.BushCape.Attack_FireProjectileBurst_Prefix (Attack __instance) (at <0677be0b2c3c4aeca444ceb584a8929c>:0)
(wrapper dynamic-method) Attack.DMDAttack::FireProjectileBurst(Attack)
(wrapper dynamic-method) Attack.DMDAttack::ProjectileAttackTriggered(Attack)
(wrapper dynamic-method) Attack.DMDAttack::OnAttackTrigger(Attack)
Humanoid.OnAttackTrigger () (at :0)
CharacterAnimEvent.OnAttackTrigger () (at :0)
[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
DragoonCapes.BrawlerCape.JotunnPunch_Prefix (HitData hit) (at <0677be0b2c3c4aeca444ceb584a8929c>:0)
(wrapper dynamic-method) Character.DMDCharacter::Damage(Character,HitData)
Aoe.OnHit (UnityEngine.Collider collider, UnityEngine.Vector3 hitPoint) (at :0)
Aoe.CheckHits () (at :0)
Aoe.Start () (at :0)
[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
DragoonCapes.BushCape.Attack_FireProjectileBurst_Prefix (Attack __instance) (at <0677be0b2c3c4aeca444ceb584a8929c>:0)
(wrapper dynamic-method) Attack.DMDAttack::FireProjectileBurst(Attack)
(wrapper dynamic-method) Attack.DMDAttack::ProjectileAttackTriggered(Attack)
(wrapper dynamic-method) Attack.DMDAttack::OnAttackTrigger(Attack)
Humanoid.OnAttackTrigger () (at :0)
CharacterAnimEvent.OnAttackTrigger () (at :0)

Okay I added safeguards that should make these errors impossible to happen, closing issue for now


Theme gets messed up when including this lib

As soon as I include add your library to my gradle file, the theme of my entire app gets messed up. It somehow removes all toolbars of all activities and other theme related attributes.
Any idea why this is the case?
Thanks

@tpoetsch Looking into it. I have mentioned the style in the Library, maybe that's replacing it.

@tpoetsch The issue has been fixed in version 0.1.5. Readme has been updated as well. Thank you so much for pointing it out.


World switcher flood and delayed hop bug

First off, make sure that the in-game world switcher is off and you're on the login screen, with the "Did you enjoy playing Old School RuneScape today?" text. Open any shop and quick-hop to the next world. The chat gets flooded with "Please finish what you're doing" and if you exit the shop interface you hop about ten seconds later.

This was fixed in #4936

Thanks for letting me know!


[FEATURE REQ] az_span_span feedback

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

I think it might be useful to have the ability to statically create an az_span_span instead of the builder methodology that is currently implemented. So we can have a macro which constructs an az_span_span with an az_span array input and size of the array. Example here:

typedef struct az_span_span_tag
{
    az_span** begin;
    size_t size;
} az_span_span;

#define AZ_SPAN_SPAN_CREATE(BEGIN, LEN) \
    { .begin = (az_span**)BEGIN, .size = LEN }

static az_span telemetry_topic_prefix = AZ_CONST_STR("devices/");
static az_span telemetry_topic_suffix = AZ_CONST_STR("/messages/events/");

static az_span* telemetry_topic_array[] =
{
    &telemetry_topic_prefix,
    NULL,                               //Device ID
    &telemetry_topic_suffix
};
static az_span_span telemetry_topic_span_concat =
    AZ_IOT_STR_CONCAT_CREATE(&telemetry_topic_array, 3);

In IoT land this is useful for creating mqtt topics as statically as possible but then leaving space for the device_id span (as demo'd here). At runtime the device ID is slotted in the NULL position.

Describe the solution you'd like
A clear and concise description of what you want to happen.

The macro would be nice so users don't have to spend time constructing az_span_span's

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[ x ] Description Added
[ x ] Expected solution specified

@vhvb1989 Can you address as part of your span cleanup work

Hey @danewalton
So, az_span_span has been removed a few days ago.
We no longer require a builder.
And the idea of a az_span_span was changed for a az_span * witch is terminated with az_span_null()  (this is basically a NULL terminated array now).
An example of this is in Keyvault client for creating operations array
key_options.operations = (az_span[]){ az_keyvault_key_operation_sign(), az_span_null() };

Please, let me know if this resolves this issue

I think this does cover most issues but it doesn't seem to allow for the ability to have a span in the middle which is not initially populated. So in my example, you can have a "prefix", a value to be dropped in during run time, and then a suffix. The original problem this was attempting to solve might have a different solution now, so writing this just as a comment about the limitations.

Yes, so, if you can provide more info about what we need this, it would be helpful. I would like to know why does it need to be an array of spans.
Something that comes to my mind is, that if we can have a pre-allocated buffer, or if we can use stack, we can have prefix, deviceId and suffix all together in one only span at runtime.
We have this macro AZ_SPAN_FROM_BUFFER() witch takes a uint8_t buffer as parameter and creates a new az_span with the buffer capacity and length = 0.  Then we can append the prefix span.
Then we have another macro AZ_SPAN_FROM_INITIALIZED_BUFFER() that is similar to the one before but set the span length to the length of the buffer. This is what I would use for making az_span from deviceId.
// some example.. (but, again, We need to know if this can be a method where we use stack,
or what's the context)
// This can be static global variables
static az_span telemetry_topic_prefix = AZ_CONST_STR("devices/");
static az_span telemetry_topic_suffix = AZ_CONST_STR("/messages/events/");

//We can have a method to build the span
az_result az_build_telemetry_topic(az_span * out) {
  // copy prefix to out span from start (replace any other content in there)
  AZ_RETURN_IF_FAILED(az_span_copy(*out, telemetry_topic_prefix, out))

 // Get the device ID.  here we need to know how to get it..
 // Option 1.  If we have a ptr and size for device id
 az_span device_id_span = az_span_init((uint8_t *) device_id_ptr, size, size);
 // Option 2. We have the device id in some buffer
 az_span device_id_span = AZ_SPAN_FROM_INITIALIZED_BUFFER(device_id_buffer);

 // then we append it to out
 AZ_RETURN_IF_FAILED(az_span_append(*out, device_id_span, out);

 // and finally the suffix
 AZ_RETURN_IF_FAILED(az_span_append(*out, telemetry_topic_suffix , out);

 return AZ_OK;
}

// now we can have someplace to call this
int main () {
  uint8_t stack_buffer[1024 * 2]; // just adding some random size
  // make a span of if
  az_span buffer_span = AZ_SPAN_FROM_BUFFER(stack_buffer);

  // call out method
  az_result build_telemetry_device_id = az_build_telemetry_topic(&buffer_span);

  // We can now use this instead of the array of span or span_span

  return 0;
}

Yea the use case currently can be mitigated. I think we might even have the device id as a pre-parsed #define which can then be dropped into a string a la:
/* config.h */
#define DEV_ID "my_device"

/* some_c.c */
static const char* const tel_topic = "/device/" DEV_ID "/telemetry";

or something similar. For now I think we can probably table this.

@danewalton  can we have this closed?
Wondering if there is anything else to do for this one?

Yup good to close.


Treat superseded indexes correctly

What is the purpose of this change? What does it change?
Treat superseded index files correctly, if they still exist.
This means, they are now ignored for most commands and check prints a hint if they exist.
Was the change discussed in an issue or in the forum before?
closes #2824
Is also used within #2718.
Checklist

[x] I have read the Contribution Guidelines
[x] I have enabled maintainer edits for this PR
[ ] I have added tests for all changes in this PR - tests are added within #2718
[x] I have added documentation for the changes (in the manual)
[x] There's a new file in changelog/unreleased/ that describes the changes for our users (template here)
[x] I have run gofmt on the code in all commits
[x] All commit messages are formatted in the same style as the other commits in the repo
[x] I'm done, this Pull Request is ready for review

This seemingly simple change has far reaching implications:
Different restic versions will interpret the index differently. This could become a problem if obsolete indexes still exist. A new restic version would then ignore an obsolete index, but older versions will still read those as before. If these obsolete indexes refer to no longer existing blobs, we now have a recipe for data loss.
I'm not sure I understand in what regard this PR treats the index files correcter than before. Is it just not-ignoring the "supersedes" field or also something else? The only scenario where the current behavior could causes data loss is when prune starts to delete pack files without successfully deleting old index files. But that case can be easily checked for during prune.
Using the supersedes field has a major downside: An interrupted index upload now leaves the repository with an incomplete index as the old one is superseded and the new one not yet complete (that could be avoided by precisely converting one or more old index files into a new one, but that would be rather complex as the new index would have to completely cover the contained old indexes; and the problem with incompatibilities remains). This in turn requires an index rebuild to repair the repository. So this moves the uncertainty from maybe too many index files too possibly too few index files. And in that regard I think the current behavior is the better trade-off.
Another benefit of this PR is that as obsolete indexes are dropped while loading, there's no memory usage overhead due to duplicate indexes. When no using the supersedes field, that could also be achieved by immediately merging indexes and in that process skipping duplicate entries.

I'm not sure I completely understand in what regard this PR treats the index files correcter than before. Is it just not-ignoring the "supersedes" field or also something else?

In fact it is only about not-ignoring "supersedes" and in fact using and interpreting it (if given) correctly. IMO the only correct handling if a supersedes is given is to ignore this index file, if it is still present.
As you also pointed out, ignoring it during backup may cause data loss: A still-existing superseded index file may make backup think that a needed blob exists in the repo which in fact doesn't.

The only scenario where the current behavior could causes data loss is when prune starts to delete pack files without successfully deleting old index files.

It is during the rebuilding of the index which is run within prune and rebuild-index. Currently, if deletion of an old index file fails, restic prints out a warning and continues (deleting the other index files and in case of prune also deleting the obsolete pack files, which may still be referenced within this specific index file). And of course there is no better way to do at this point, as the new index files have already been written...

But that case can be easily checked for during prune.

See above. There is also the problem, that identifying an error when deleting a file relies on the backend. When using a eventually consistent backend, a nil error may just mean that the delete command was accepted. In edge cases where the storage has to decide under in an unclear situation whether to delete a file or not I do not think that any implementation may think that NOT deleting in this case may case data loss...

Using the supersedes field has a major downside: An interrupted index upload now leaves the repository with an incomplete index as the old one is superseded and the new one not yet complete (that could be avoided by precisely converting one or more old index files into a new one, but that would be rather complex as the new index would have to completely cover the contained old indexes; and the problem with incompatibilities remains; and an incremental index update would also work without supersedes). This in turn requires an index rebuild to repair the repository. So this moves the uncertainty from maybe too many index files to possibly too few index files. And in that regard I think the current behavior is the better trade-off.

You are right about the possibility that this PR may result in too less index entries. However, the conclusion is really simple: Too less index entries may cause problems with restoring (which can be repaired by rebuilding the index) while too much index entries may cause data loss during backup...

When no using the supersedes field, that could also be achieved by immediately merging indexes and in that process skipping duplicate entries.

Actually this can be implemented independently from this PR; I'll tackle this shortly.
Let me please explain, why I'm proposing this PR in the scope of optimizing prune:
In the actual prune implementation the index is rebuilt at the end by reading all "finally exisiting" (i.e. the state after all rewrites and pack deletion) pack headers and writes them to the index. The current index files are not used at all, so current prune heals the situation of superseded
However, this re-reading of all pack headers is one of the things that slows down current prune.
So I propose to use the in-memory index loaded from the index files to use in prune. In #2718 it is actually used twice, but I separated this:
The first place is when determining what to do in prune, this is still in #2718. Here superseded but still existing and not ignored index files would result in:

maybe some extra index entries which point to non-existing pack files which are actually not used. This will cause a security check in new prune to abort.
maybe more duplicates which would be wrongly marked for repacking depending on used the prune parameters. This would not break anything but let prune do some unneeded repacking work.

The second place is the index rebuilding, now in #2842. Here the "wrong duplicates" will be still written twice.
So I agree that for the proposed prune changes, it is sufficient to skip exact duplicates while merging.

I added the deletion of still existing superseded index files here (and removed it from #2718). So this can now be tackled independently from #2718. Or postponed, if this change needs more discussion :wink:

It is during the rebuilding of the index which is run within prune and rebuild-index. Currently, if deletion of an old index file fails, restic prints out a warning and continues (deleting the other index files and in case of prune also deleting the obsolete pack files, which may still be referenced within this specific index file). And of course there is no better way to do at this point, as the new index files have already been written...

As #2674 was merged, this is no longer a problem.

You are right about the possibility that this PR may result in too less index entries. However, the conclusion is really simple: Too less index entries may cause problems with restoring (which can be repaired by rebuilding the index) while too much index entries may cause data loss during backup...

I don't think that way of error handling is a good idea as it introduces a new failure mode in restic: Currently when a backup client or the network connections fails, the worst case (unless you hit a bug) is that you have to unlock the repository and run the command again. A failed prune run actually always leaves the repository in a working state, it just contains lots and lots of garbage data. Rebuilding the index for recovery will work, however, in the meantime the repository is unusable. And rebuild-index takes ages for large repositories, which is part of why I don't want this to be part of normal operation (once #2718 and #2842 are merged, the index is in fact no longer rebuilt from scratch during normal operation). I actually regard rebuild-index to be a last-resort command to repair a repository where the backend lost / damaged some of the data. That is it would make recovering from failed prune runs much more complicated / time intensive than right now.

As you also pointed out, NOT ignoring it during backup may cause data loss: A still-existing superseded index file may make backup think that a needed blob exists in the repo which in fact doesn't.

If we make this change I want to maintain backwards compatibility. When the supersedes field is suddenly interpreted we should ensure that this won't break older restic clients (beyond already existing problems). I'm pretty sure that there are several restic users which use different versions for different clients which still backup to the same repository. This also implies that continuing after failing to delete an old index file is not an option. Safely requiring clients to interpret the supersedes field would require a repository format change.

There is also the problem, that identifying an error when deleting a file relies on the backend. When using a eventually consistent backend, a nil error may just mean that the delete command was accepted. In edge cases where the storage has to decide in an unclear situation whether to delete a file or not I do not think that any implementation may think that NOT deleting in this case may cause data loss...

This is in my opinion the main problem which this PR solves. With the above requirements, for a strongly consistent backend (e.g. local filesystem) the only other issue is avoiding some unnecessary repack work due to duplicate blobs. And that is "only" an optimization.
We could avoid the problem of an incomplete index by uploading a "tombstone" index as the last step of rewriting the index. That way old indexes are only ignored once the new index was uploaded. To fix the problem of reappearing deleted indexes this would be enough, as packs are only deleted after the tombstone index was uploaded. However I've just made the assumption, that the tombstone index is visible to the next restic run. In that regard, adding the supersedes field to every index file would be more reliable, as it's available starting from the first part of the new index and also contained in many more files.
I just noticed that this change is related to how a non-blocking prune would work. There unreferenced blobs are first marked for deletion at which point they may no longer be used in later backup runs, but are still accessible for retrieving data from the repository. Entries from superseded indexes are quite similar to the ones marked for deletion.
It's probably a good idea to postpone this PR until after the main prune changes are completed. I also have to think a bit more about the assumptions regarding the required backend consistency guarantees.

By now I've spent some time on planning how index updates should work for a non-blocking prune implementation (there's nothing to show yet). What's becoming clear is however that marking old index data obsolete should not work on an index level, but rather at the granularity of pack files. That is far more flexible and also allows for rewriting only index files that contain too many deleted pack files.
As currently the supersedes field is not interpreted by restic (which would change after merging this PR), this allows us to completely drop the old mechanism. Merging this PR however would require us to keep the old mechanism and thus would complicate the future evolution of the repository format.

What's becoming clear is however that marking old index data obsolete should not work on an index level, but rather at the granularity of pack files. That is far more flexible and also allows for rewriting only index files that contain too many deleted pack files.

Fully agree. If you have something to show up, I'm looking forward to a discussion. As you surely know I claim that rustic already uses a non-blocking prune, the corresponding index files additions are here: https://github.com/rustic-rs/rustic_core/blob/main/crates/core/src/repofile/indexfile.rs#L26 (and L52ff)
This may be a starting point and if you think something needs to be improved, let's discuss it!


Error on merging dicts

I'm using the version 1.5.41 of instagram-scraper, and I'm having an issue. The following portion of code throws an error:
_scraper/app.py", line 1154, in merge_json     merged += json.load(f) TypeError: unsupported operand type(s) for +=: 'dict' and 'dict
This is the command line I tried to input, with no data downloaded beforehand:
instagram-scraper -f {0} -d {1} -n -u {2} -p {3} --retry-forever --latest --profile-metadata --comments -t image

Please @Greenbald test the fix: https://github.com/rarcega/instagram-scraper/pull/354

I think this PR (https://github.com/rarcega/instagram-scraper/commit/90d68a2f5055e5d3524210e42d03454daef1d98b) added the issue.

@Greenbald please test this fix: https://github.com/rarcega/instagram-scraper/issues/353