fix(query): s3 bucket policy accepts http requests

Closes #5352
Proposed Changes
validActions and action_check cause false positive on iam policy documents for s3 ,
remove them makes all result become good, please explain rational behind this function
validActions . check_action
I submit this contribution under the Apache-2.0 license.

resolves #5352

need to understand how to do something like : ( check_action(statement.Action) || check_action(statement.actions) )

I see white space only changes is some of the files, can we amend the commits to avoid that ?

Its terraform format , we can eliminate these changes
Regards,
Ran Lupovich
Mobile #: +972-52-8696-334
Email:  @.***
Skype: ran.lupovich
בתאריך יום ב׳, 30 במאי 2022, 12:03, מאת Lior Kaplan <
@.***>:

I see white space only changes is some of the files, can we amend the
commits to avoid that ?
—
Reply to this email directly, view it on GitHub
https://github.com/Checkmarx/kics/pull/5415#issuecomment-1140895187, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AZD7IHOEBDPDFIQ7FHDQP4LVMR743ANCNFSM5XF6V2XA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Thanks Ran. We'll squash all the commits on merge itself.

Hi having valid actions as s3:* and * as I did in last conmit, will solve
it, isn't it? WDYT? It is supposed to allowstate only start or s3 star,
Regards,
Ran Lupovich
Email:  @.***
בתאריך יום ב׳, 6 ביוני 2022, 12:07, מאת Rafaela Soares <
@.***>:

@.**** commented on this pull request.
In
assets/queries/terraform/aws/s3_bucket_policy_accepts_http_requests/query.rego
https://github.com/Checkmarx/kics/pull/5415#discussion_r889961246:

+check_action(st) {

is_string(st.Action)
st.Action == validActions[x]
} else {

action[a] == validActions[x]

st.Action[a] == validActions[x]
+} else {
is_string(st.Actions)
st.Actions == validActions[x]
+} else {
st.Actions[a] == validActions[x]
}

Yes, of course, @LupovichRan https://github.com/LupovichRan.
It is an unlikely edge case, but a user could attach a "wrong" policy
(with no S3 action) to an S3 bucket. For example:
data "aws_iam_policy_document" "neg6" {
statement {
effect = "Allow"
principals {
  type        = "*"
  identifiers = ["*"]
}

actions = [
  "iam:*AccessKey*",
]

resources = [
  "arn:aws:s3:::a/*",
  "arn:aws:s3:::a",
]
condition {
  test     = "Bool"
  variable = "aws:SecureTransport"
  values   = ["true"]
}

}
}
resource "aws_s3_bucket" "neg6" {
bucket = "a"
policy = data.aws_iam_policy_document.neg6.json
}
—
Reply to this email directly, view it on GitHub
https://github.com/Checkmarx/kics/pull/5415#discussion_r889961246, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AZD7IHKKQTL6MA3CX246ZYTVNW5TJANCNFSM5XF6V2XA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi having valid actions as s3:* and * as I did in last conmit, will solve it, isn't it? WDYT? It is supposed to allowstate only start or s3 star, Regards, Ran Lupovich Email: @.*** בתאריך יום ב׳, 6 ביוני 2022, 12:07, מאת Rafaela Soares < @.>:
…
@.* commented on this pull request. ------------------------------ In assets/queries/terraform/aws/s3_bucket_policy_accepts_http_requests/query.rego <#5415 (comment)>: > +check_action(st) { + is_string(st.Action) + st.Action == validActions[x] } else { - action[a] == validActions[x] + st.Action[a] == validActions[x] +} else { + is_string(st.Actions) + st.Actions == validActions[x] +} else { + st.Actions[a] == validActions[x] } Yes, of course, @LupovichRan https://github.com/LupovichRan. It is an unlikely edge case, but a user could attach a "wrong" policy (with no S3 action) to an S3 bucket. For example: data "aws_iam_policy_document" "neg6" { statement { effect = "Allow" principals { type = "" identifiers = [""] } actions = [ "iam:AccessKey", ] resources = [ "arn:aws:s3:::a/", "arn:aws:s3:::a", ] condition { test = "Bool" variable = "aws:SecureTransport" values = ["true"] } } } resource "aws_s3_bucket" "neg6" { bucket = "a" policy = data.aws_iam_policy_document.neg6.json } — Reply to this email directly, view it on GitHub <#5415 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AZD7IHKKQTL6MA3CX246ZYTVNW5TJANCNFSM5XF6V2XA . You are receiving this because you were mentioned.Message ID: @.**>

Hello, @LupovichRan!
I think we should also look for any action that starts with s3: to cover s3:GetObject, for example.
any_s3_action(action) {
	any([action == "*", startswith(action, "s3:")])
}

check_action(st) {
	is_string(st.Action)
	any_s3_action(st.Action)
} else {
	any_s3_action(st.Action[a])
} else {
	is_string(st.Actions)
	any_s3_action(st.Actions)
} else {
	any_s3_action(st.Actions[a])
}

Won't it allow to set something with just partial cover like setting s3:GetObject alone or despite our wish to cover all actions?

In the previous query version, this query was only considering actions set to *, s3:*, or s3:GetObject. However, in cases where the actions are set to other s3 actions like PutObject, it should also be under secure transport. In other words, we should consider all the s3 actions that the user can define. Since listing all the actions could lead to mistakes (like forgetting one or more), I think the best approach is to look if the action starts with s3: or is set to *. If starts with s3:, it can cover cases like only s3:GetObject, which sould be under secure transport.
My apologies for the misunderstanding.

Thanks for clarification ; applied the change please have a look


How does jib implement user work operation

Environment:

*Jib version: 3.1.2
*Build tool: Maven
*OS: MacOs or CentOs

Description of the issue:
In the <extradirectories><paths> operation, the copied path is generated with root user. So the application script cannot be executed with work user. It is expected that  <workingDirectory>can be generated with work user.
<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>3.1.2</version>
    <configuration>
        <from>
            <image>xxxxxa</image>
            <auth>
                <username>myuser</username>
                <password>mypassoword</password>
            </auth>
        </from>
        <to>
            <image>xxxxxb</image>
            <auth>
                <username>myuser</username>
                <password>mypassoword</password>
            </auth>
        </to>
        <allowInsecureRegistries>true</allowInsecureRegistries>
        <extraDirectories>
            <paths>
                <path>
                    <from>../output/hello-focus/</from>
                    <into>/home/work/hello-focus/runtime/</into>
                </path>
            </paths>
            <permissions>
                <permission>
                    <file>/home/work/hello-focus/runtime/bin/*</file>
                    <mode>777</mode>
                </permission>
            </permissions>
        </extraDirectories>
        <container>
            <user>work:1000</user>
            <environment>
                <EM_APP_HOME>/home/work/hello-focus/runtime</EM_APP_HOME>
                <EM_APP>hello-focus</EM_APP>
            </environment>
            <entrypoint>sh,bin/start.sh</entrypoint>
            <workingDirectory>/home/work/hello-focus/runtime</workingDirectory>
            <filesModificationTime>2022-05-06T22:43:05Z</filesModificationTime>
        </container>
    </configuration>
</plugin>

It is image generation path of now, the rumtime path generation by root root, It is expected that  /home/work/hello-focus/runtime can be generated with work user.
sh-4.1$ pwd
/home/work/hello-focus
sh-4.1$
bash-4.1$ ls -lh
total 4.0K
drwxr-xr-x 1 root root 4.0K Jan  1  1970 runtime

Expected behavior:
/home/work/hello-focus/runtime is generated with work user
Steps to reproduce:
Execute mvn compile jib:build -X   under pom.xml path.

@chanseokoh @coollog

Using docker cli solves this problem
# required apiVersion and kind, for compatibility over versions of the cli
apiVersion: jib/v1alpha1
kind: BuildFile

# full base image specification with detail for manifest lists or multiple architectures
from:
  image: "iregistry.baidu-int.com/meg-cprd-testmain/centos7u5/emcjdk8:0.1"

format: Docker # Docker or OCI

# container environment variables
environment:
  "EM_APP_HOME": "/home/work/hello-focus/runtime"
  "EM_APP": "hello-focus"

# the user to run the container (does not affect file permissions)
user: "1000:1000"

workingDirectory: "/home/work/hello-focus/runtime"

entrypoint:
  - "sh"
  - "bin/start.sh"

# file layers of the container
layers:
  properties:                        # file properties applied to all layers
    filePermissions: "755"           # octal file permissions, default is 644
    directoryPermissions: "755"      # octal directory permissions, default is 755
    user: "1000"                        # default user is 0
    group: "1000"                       # default group is 0
  entries:
    - name: "scripts"                # first layer
      properties:                    # file properties applied to only this layer
        filePermissions: "755"
        # see above for full list of properties...
      files:                         # a list of copy directives constitute a single layer
        - src: "../output/hello-focus/"      # a simple copy directive (inherits layer level file properties)
          dest: "/home/work/hello-focus/runtime/"       # all 'dest' specifications must be absolute paths on the container
          properties:                # file properties applied to only this copy directive
            filePermissions: "755"

Glad to know that the jib cli resolved your problem! Additionally, please see this stackoverflow on setting folder permissions  and the extradirectories feature in the jib-maven-plugin for some background, if you're interested.


Add poster attribute like in HTML 5 video

http://www.w3schools.com/tags/att_video_poster.asp

+1

@masterkrang did you see the TODOs in the README? See also http://www.w3fools.com

@jhabdas yes i saw the todos in the readme, so? thanks for the link but i didn't see anything valuable there.

TODO section link to HTML5 component updated to a more authoritative and useful resource. I'm closing this issue as it's covered by what's already stated in the TODOs, and because this repo's issues section is getting a bit out of control. Please feel free to submit a PR with support for  @masterkrang and thanks for opening the issue to raise the idea.

+1

+1

Reopening as this now feels a more targeted need than HTML5 API conformance.

@jhabdas I believe this can be closed as there is already a poster attribute implemented in #400. It's not documented yet though.

Amen


SchemaType.Swagger2 does not generate Swagger2 complaint schema

Specifically, the behavior of allOf.
When generating a schema for a derived class, NJsonSchema will define both a list of properties AND a list of allOf (reference to base class). However, Swagger2 will ignore the list of properties!  When using swagger tooling/codegen, the result is multiple clones of the base class, all properties of the derived classes are lost, only the name of the class is different.
I actually fault swagger for breaking from JSON Schema spec w/r/t polymorphism. But NJsonSchema advertises this SchemaType.Swagger2 switch, which should work.
When I try to flatten the dependency tree, I get multiple definition of property errors very similar to this open issue.
The code I am trying to spec out is legacy, therefore I cannot declare inheritance. Although I'm not sure declaring inheritance is the issue, since the schema generated in the linked example is likewise not swagger2 compliant.
I have a feeling this is somehow related to the $ref issue in the OpenAPI Spec itself.

So swagger/openapi has to treat allof differently then json schema?

I'm not sure exactly... I just dove into this issue today after creating POC of my API toolchain over the past few weeks. I came back to patch holes and found this. Any insights would be appreciated.
Quote from my fist link above (swagger spec, all of behavior):
"Swagger allows combining and extending model definitions using the allOf property of JSON Schema, in effect offering model composition. allOf takes in an array of object definitions that are validated independently but together compose a single object."

I think i began working on this in a separate branch but it involves a lot of work and is really complecated because all schema properties have to be resolved when refs are in place... certainly on my todo list

See: https://github.com/RSuter/NJsonSchema/pull/733

I think the $refs are fine. One way (for me) to do it is to post-process the NJsonSchema object before writing out to file. Basically, if a schema has an "allOf" property, create a new object in that list and move the properties into it.
Maybe something like...
Before
    "Dog": {
      "properties": {
        "Bar": {
          "type": [
            "null",
            "string"
          ]
        }
      },
      "allOf": [
        {
          "$ref": "#/definitions/Animal"
        }
      ]
    },

After
    "Dog": {
      "allOf": [
        {
          "$ref": "#/definitions/Animal"
        },
        {
          "properties": {
            "Bar": {
              "type": [
                "null",
                "string"
              ]
            }
          }
        }
      ]
    },

After digging a bit more, this seems the correct way to do Extension/Composition in JSON Schema. So, my initial thought that swagger was not obeying spec, might be wrong. Thoughts?

Yes, you can implement this with a schema visitor: https://github.com/RSuter/NJsonSchema/tree/master/src/NJsonSchema/Visitors
Also see my PR, working on this - main problem is that this will complicate the C# models extremely as it will introduce many Actual* properties (which resolve refs) which have to be used everywhere... (ie. generators)

PR: https://github.com/RSuter/NJsonSchema/pull/733


Update PlantUML to 1.2022.2

Hi @dukex! Sorry I completely missed this PR. TBH I was'nt aware anyone was using this besides myself and some of the ppl I have worked with :-)


Tzachi shared node phase2

This PR adds 4 more modules to the shared node:
oref0-calculate-iob
oref0-meal
oref0-get-profile
oref0-get-ns-entries
Technically this changes are not complicated, but looking at the PR it seems to touch a lot of files (many of them only have one line changed).
The main reason for the many changes are this:

All files that are touched by this pr (or called from files running by this PR) are moved to strict mode.
Usually, this only means to add strict to the beginning of the file. Sometimes this meant that variables have to be declared in functions. In a few places variables were shared across files, so I had to make sure they are passed as parameters.

There are some functions that have functionality that needs to be moved to the calling function.
This includes the following:
console.log(), console.error() and process.exit()
This 3 functions have been replaced by console_log(), console_error() and process_exit().
The new functions only receive one extra parameter (final_result), that will hold the data to be returned to the calling function.

There are more printings in the code that I did not move to the new paradigm in order not to make this PR even longer.
Obviously, this PR needs a through code review and more testing.

Just getting back to this. Has anyone tested this on a rig yet? If so, on a Pi, Edison, or both?

So I take it this is still untested on any production rigs?

Correct, it is tested on a rig, getting production data and controlling a pump, but another pump is actually closing the rig.
The input and output data are being calculated with the new code and the old code and then they are compared.

How is review going? Will it help if I split this into smaller prs?

I think the next step is to install it on a rig controlling a live pump and make sure it still works correctly. I had done such testing against #1359, but it sounds like you abandoned that, so I'm unclear whether any of this code has been tested or not. I haven't gotten back to it since you closed #1359: have you had any chance to do any live testing since then?

#1359 was merged into dev as part of #1361.
The question is how to continue form there. People that are installing dev these days are running with this code.
This PR moves 4 operations (for example oref0-meal) to the shared node. Since these operations can be categorized as programs that read input files and write output files I think that the best way to move on is to create a very small pr that only copies this files. Once we have enough test data, we can run the old code and the new code and make sure that they are exactly the same.
Does this sound reasonable?

Ah, ok, thx.
Yes, that is a good test plan, and more thorough than my "just try it on a rig and make sure it still works" method. If you don't have cycles to get the former done, I'll probably be able to do the latter at some point after I finish my taxes. ;-)

OK, so I'll prepare the scripts needed to collect the data until the end of the week, so we can start collecting.

Not sure what the next step with this branch is. https://github.com/openaps/oref0/pull/1411 addresses the root cause of the performance problems with node, which were a big part of the motivation for this branch. But while the interpreter startup performance with a fixed nodejs interpreter is better, it's still not great, and wouldn't be able to handle calling nodejs scripts in a loop. And there are some medium-to-long-term architectural advantages to having a persistent nodejs process, in the ability to preserve state between loops without using hacky JSON files in ~/myopenaps.

@jimrandomh OpenAPS architecture is (AFAIK) intentionally based on the functional programming paradigm and thus the logic is designed to be inherently stateless. When discussing this branch / architecture changes originally, I recall the only state that was discussed was retaining in-memory copies of the deserialised files and only reloading files from disk if needed. Having said that, the logic in OpenAPS hasn't been implemented functionally and does direct changes to the data as well as uses globals, so having more logic live in the process would require careful refactoring of the code. OTOH this would probably speed up running the loop to a fraction of the time currently needed and personally I think not relying on the rig running a particular version of the shell would in my opinion be an architectural win.

@sulkaharo
This PR does not change the logic of storing/reading files from disk. In all places that files have been read from disk (and cached), the code has changed to always read the file (a one line change).
There have been a few global variables but their usage if fixed now (I hope).
There is code that runs on the unmodified version of the code, and copies the input files and the output files.
The files are then used to test the new code, and I did not see any change in the output either.
What we need right now is a comprehensive code review and more testing.
By the way, a few of this changes are already live in dev branches of the pi, so architecture should be fine.

@tzachi-dar Ah - I was referring to Jim's notion of expanding more (all?) of OpenAPS run in the persistent process. Related: there's a new Pi Zero 2 out now that apparently has 5x better CPU performance. This comes at a cost of higher battery draw under load, so I'm assuming if people change over to the new Pi in their rigs, the point of these optimisations would be to have the CPU spend less cycles to draw less current, not to enable the loop to run in the first place.

Extraneous logging when calculating meal.json:
Pump history updated through 2021-12-17T20:17:05-08:00 with 4 new records; meal.json dir_name = /root/test_data/oref0-meal2021-12-17-2018

@tzachi-dar is this ready to merge to dev from your perspective? Is it still useful after the changes in #1411?

The solution introduced in this pr is better than the one in pr#1411.
After 1411, it still takes around 1.5 second to start a node running. (please note that the code is being compiled each time when starting node).
As far as I can remember from my tests the average load on the rig was around one with my pr, and is around 2 now.
That said, I don't have an environment to test this right now.
That said after #1411 the rig works much better. so I guess that motivation to invest in this direction is much lower.
If you have the BW to test this as well, it would be great, but I will understand if you fill that it is not that important right now.

I'm now running this on all of our rigs, and have not seen any issues so far. If they continue to look good and I don't hear any objections, I'll probably merge it to dev tomorrow.

I haven't seen any issues related to this branch on any of our rigs. They are all Edisons, and seem to be marginally faster, although it's hard to tell for sure, as they were pretty quick already.

After merging this, every rig updated to the latest dev will need to have oref0-setup re-run (normally via ~/myopenaps/oref0-runagain.sh) to get the new shared-node setup installed properly so the rig can resume looping.

Are you sure a setup is needed?
The shared node already started to run in a previous pr, so although this adds much more code, the shared node is already running, so I don't see why running setup again.
We also have the file "oref0\bin\oref0-upgrade.sh" that can be used in order to do additional steps if they are needed.

I don't know the precise conditions under which oref0-setup is required, but I know that I upgraded a few rigs that were on much older versions of dev, and they stopped looping until I re-ran oref0-runagain. I think it's fine to require people to do that manually: we shouldn't expect to be able to just git pull without reinstalling unless the changes are very minor.

OK, makes sense.


Firefox request access microphone two times when open app

When I open the app on Firefox browser, it's request access to microphone at Permissions Dialog and at Microphones Dialog (after choose)
Permissions dialog

After microphones dialog

For now, browsers have a rudimentary environment for obtaining permissions.
For example: O Chrome I can invoke mediaDevices.getUserMedia({ audio: true }), it shows a popup one time and after allowed by user, the permission is memorized by browser

But on Firefox every time I invoke the method, and after user permission, It ways asked for it again. It's look like a security behavior of Firefox

There are an API https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/permissions/request
to check if I already have permission before ask for it, but this API does not encompass audio feature
With this missing pattern to request permissions to users across the browsers. I can't do much for this now
Maybe with dfb658c4fbff19322f52dfe076a1650bb6311250 can avoid partially this behavior of Firefox, but you still need  at least give permission to browser by native popup


Playwright E2E Testing Framework

Description
Introduce Playwright UI testing framework.
Type of Changes
Additive & Testing
Added

Testing folder with a small subset of tests.
Playwright and headless browser dependencies.
Introductory documentation
run npm install

Changed
Dependencies, testing framework.
Checklist

[x] I have added commit messages that are descriptive and meaningful.
[x] I have tested the changes locally.
[x] I have reviewed the code changes.

Screenshots (if applicable)

Oh man the playwright test generator is awesome.


Add a docker image.

Usage:
cd docker/
./run_docker.sh -b

This will build the image and run :)
For future executions:
docker exec -it nvblox bash

Self-LGTM, pretty trivial.


#DOCS - Added a models digram (using django-extensions)

Hi this is an attempt to help new contributors having an idea of the speaker fight models.
It was generate using:
./manage.py graph_models organization --output organization.png

I think that this is best to be in Makefile, we are adding a artifact of the project has doesn't have to be versionated with the source and gets old easily.
If you want to convert this to a Makefile command, its okay for me but i dont see any sense in this being versionated, its a compiled file based on a moment in history. For this to be updated we need to on every pull request generate this.


RBAC permission mismatch outputs all permissions instead of missing ones

When creating new {cluster|project}roletemplatebindings, the admission webhook will return an error if the user is attempting to grant more permissions than they have. This is expected, standard, core k8s behavior.
The problem is that the list of returned problematic permissions is not exclusive to the permissions that are a problem. The list returns all permissions that the grantor is attempting to grant. This leads to end user fatigue as they need to manually determine the problematic permission between the roles.
Example error:
admission webhook "rancher.cattle.io.clusterroletemplatebindings.management.cattle.io" denied the request: user "u-xnhmc" (groups=["system:authenticated" "system:cattle:authenticated"]) is attempting to grant RBAC permissions not currently held:
{APIGroups:[""], Resources:["configmaps"], Verbs:["*"]}
{APIGroups:["*"], Resources:["roles"], Verbs:["*"]}
{APIGroups:["rbac.authorization.k8s.io"], Resources:["clusterrolebindings"], Verbs:["*"]}

The only difference between the grantor's (u-xnhmc) access and the grantee's access is
{APIGroups:["*"], Resources:["roles"], Verbs:["*"]}

but the other two lines are shown anyways.

@ebauman I agree this is a challenge for users. Unfortunately, we do not create this error message; instead, we use the same library as Kubernetes to handle escalation checks here. You can open and issue in Kubernetes to have this function update with an easy to digest error message, and that change would then make its way into rancher webhook. https://github.com/kubernetes/kubernetes/blob/v1.27.4/pkg/registry/rbac/validation/rule.go#L53


Package not found on conda

Dear Jasper,
I tried to install the package via conda and pip, and neither options seem to work.
mamba create --name test -c conda-forge sklearn-quantile
gives:
Looking for: ['sklearn-quantile']
warning  libmamba Cache file "/Users/semv/miniconda3/pkgs/cache/a850f475.json" was modified by another program
warning  libmamba Cache file "/Users/semv/miniconda3/pkgs/cache/09cdf8bf.json" was modified by another program
warning  libmamba Cache file "/Users/semv/miniconda3/pkgs/cache/9e99ffaf.json" was modified by another program
warning  libmamba Cache file "/Users/semv/miniconda3/pkgs/cache/3e39a7aa.json" was modified by another program
warning  libmamba Cache file "/Users/semv/miniconda3/pkgs/cache/8bd55712.json" was modified by another program
warning  libmamba Cache file "/Users/semv/miniconda3/pkgs/cache/4ea078d6.json" was modified by another program
pkgs/r/osx-arm64                                   118.0 B @   1.6kB/s  0.1s
pkgs/main/noarch                                   852.1kB @   1.8MB/s  0.5s
pkgs/r/noarch                                        1.3MB @   1.8MB/s  0.7s
pkgs/main/osx-arm64                                  1.9MB @   2.4MB/s  0.8s
[+] 1.3s
conda-forge/osx-arm64                                7.3MB @   3.8MB/s  2.1s
conda-forge/noarch                                  13.9MB @   3.6MB/s  4.2s
Could not solve for environment specs
The following package could not be installed
└─ sklearn-quantile does not exist (perhaps a typo or a missing channel).

Installing it via pip gives the error that Cython was not install, after explicitly installing it, it give the error that numpy was not installed. (I was thinking it was not correctly resolving the dependencies.) After installing numpy, it said:
(bwcore) ➜  ~ pip install sklearn-quantile
Collecting sklearn-quantile
  Using cached sklearn_quantile-0.0.21.tar.gz (33 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [288 lines of output]
      /Users/semv/miniconda3/envs/bwcore/lib/python3.10/site-packages/Cython/Compiler/Main.py:384: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /private/var/folders/69/l8scbc7s3z799nds71hbtw0r0000gn/T/pip-install-85o5dsqh/sklearn-quantile_3c7c97c814c74dbbbe846210cd5103c0/sklearn_quantile/ensemble/maximum.pyx
        tree = Parsing.p_module(s, pxd, full_module_name)
      /Users/semv/miniconda3/envs/bwcore/lib/python3.10/site-packages/Cython/Compiler/Main.py:384: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /private/var/folders/69/l8scbc7s3z799nds71hbtw0r0000gn/T/pip-install-85o5dsqh/sklearn-quantile_3c7c97c814c74dbbbe846210cd5103c0/sklearn_quantile/ensemble/quantile.pyx
        tree = Parsing.p_module(s, pxd, full_module_name)
      /Users/semv/miniconda3/envs/bwcore/lib/python3.10/site-packages/Cython/Compiler/Main.py:384: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases!
          # Allocate index tracking array.
          cdef IndexedElement *order_struct = <IndexedElement *> malloc(n * sizeof(IndexedElement))

          # Copy data into index tracking array.
          for i in range(n):
              order_struct[i].index = i
                          ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:47:20: Invalid index type '<error>'

      Error compiling Cython file:
      ------------------------------------------------------------
      ...
          cdef IndexedElement *order_struct = <IndexedElement *> malloc(n * sizeof(IndexedElement))

          # Copy data into index tracking array.
          for i in range(n):
              order_struct[i].index = i
              order_struct[i].value = data[i]
                                           ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:48:37: Invalid index for memoryview specified, type <error>

      Error compiling Cython file:
      ------------------------------------------------------------
      ...
          cdef IndexedElement *order_struct = <IndexedElement *> malloc(n * sizeof(IndexedElement))

          # Copy data into index tracking array.
          for i in range(n):
              order_struct[i].index = i
              order_struct[i].value = data[i]
                          ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:48:20: Invalid index type '<error>'

      Error compiling Cython file:
      ------------------------------------------------------------
      ...
          for i in range(n):
              order_struct[i].index = i
              order_struct[i].value = data[i]

          # Sort index tracking array.
          qsort(<void *> order_struct, n, sizeof(IndexedElement), _compare)
                                                                  ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:51:60: Cannot assign type 'int (const_void *, const_void *) except? -1' to 'int (*)(const_void *, const_void *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'int (const_void *, const_void *) except? -1'.

      Error compiling Cython file:
      ------------------------------------------------------------
      ...
          # Sort index tracking array.
          qsort(<void *> order_struct, n, sizeof(IndexedElement), _compare)

          # Copy indices from index tracking array to output array.
          for i in range(n):
              order[i] = order_struct[i].index
                                     ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:55:31: Invalid index type '<error>'

      Error compiling Cython file:
      ------------------------------------------------------------
      ...
          # Sort index tracking array.
          qsort(<void *> order_struct, n, sizeof(IndexedElement), _compare)

          # Copy indices from index tracking array to output array.
          for i in range(n):
              order[i] = order_struct[i].index
                    ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:55:14: Invalid index for memoryview specified, type <error>

      Error compiling Cython file:
      ------------------------------------------------------------
      ...

          # Allocate index tracking array.
          cdef IndexedElement *order_struct = <IndexedElement *> malloc(n * sizeof(IndexedElement))

          # Copy data into index tracking array.
          for i in range(n):
                   ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:46:13: Coercion from Python not allowed without the GIL

      Error compiling Cython file:
      ------------------------------------------------------------
      ...

          # Allocate index tracking array.
          cdef IndexedElement *order_struct = <IndexedElement *> malloc(n * sizeof(IndexedElement))

          # Copy data into index tracking array.
          for i in range(n):
                   ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:46:13: Iterating over Python object not allowed without gil

      Error compiling Cython file:
      ------------------------------------------------------------
      ...

          # Allocate index tracking array.
          cdef IndexedElement *order_struct = <IndexedElement *> malloc(n * sizeof(IndexedElement))

          # Copy data into index tracking array.
          for i in range(n):
                        ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:46:18: Calling gil-requiring function not allowed without gil

      Error compiling Cython file:
      ------------------------------------------------------------
      ...

          # Allocate index tracking array.
          cdef IndexedElement *order_struct = <IndexedElement *> malloc(n * sizeof(IndexedElement))

          # Copy data into index tracking array.
          for i in range(n):
                        ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:46:18: Constructing Python tuple not allowed without gil

      Error compiling Cython file:
      ------------------------------------------------------------
      ...

          # Allocate index tracking array.
          cdef IndexedElement *order_struct = <IndexedElement *> malloc(n * sizeof(IndexedElement))

          # Copy data into index tracking array.
          for i in range(n):
                         ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:46:19: Converting to Python object not allowed without gil

      Error compiling Cython file:
      ------------------------------------------------------------
      ...

          # Sort index tracking array.
          qsort(<void *> order_struct, n, sizeof(IndexedElement), _compare)

          # Copy indices from index tracking array to output array.
          for i in range(n):
                   ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:54:13: Coercion from Python not allowed without the GIL

      Error compiling Cython file:
      ------------------------------------------------------------
      ...

          # Sort index tracking array.
          qsort(<void *> order_struct, n, sizeof(IndexedElement), _compare)

          # Copy indices from index tracking array to output array.
          for i in range(n):
                   ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:54:13: Iterating over Python object not allowed without gil

      Error compiling Cython file:
      ------------------------------------------------------------
      ...

          # Sort index tracking array.
          qsort(<void *> order_struct, n, sizeof(IndexedElement), _compare)

          # Copy indices from index tracking array to output array.
          for i in range(n):
                        ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:54:18: Calling gil-requiring function not allowed without gil

      Error compiling Cython file:
      ------------------------------------------------------------
      ...

          # Sort index tracking array.
          qsort(<void *> order_struct, n, sizeof(IndexedElement), _compare)

          # Copy indices from index tracking array to output array.
          for i in range(n):
                        ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:54:18: Constructing Python tuple not allowed without gil

      Error compiling Cython file:
      ------------------------------------------------------------
      ...

          # Sort index tracking array.
          qsort(<void *> order_struct, n, sizeof(IndexedElement), _compare)

          # Copy indices from index tracking array to output array.
          for i in range(n):
                         ^
      ------------------------------------------------------------

      sklearn_quantile/utils/weighted_quantile.pyx:54:19: Converting to Python object not allowed without gil
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/69/l8scbc7s3z799nds71hbtw0r0000gn/T/pip-install-85o5dsqh/sklearn-quantile_3c7c97c814c74dbbbe846210cd5103c0/setup.py", line 30, in <module>
          ext_modules=cythonize(extensions),
        File "/Users/semv/miniconda3/envs/bwcore/lib/python3.10/site-packages/Cython/Build/Dependencies.py", line 1134, in cythonize
          cythonize_one(*args)
        File "/Users/semv/miniconda3/envs/bwcore/lib/python3.10/site-packages/Cython/Build/Dependencies.py", line 1301, in cythonize_one
          raise CompileError(None, pyx_file)
      Cython.Compiler.Errors.CompileError: sklearn_quantile/utils/weighted_quantile.pyx
      Compiling sklearn_quantile/utils/weighted_quantile.pyx because it changed.
      Compiling sklearn_quantile/ensemble/quantile.pyx because it changed.
      Compiling sklearn_quantile/ensemble/maximum.pyx because it changed.
      [1/3] Cythonizing sklearn_quantile/ensemble/maximum.pyx
      [2/3] Cythonizing sklearn_quantile/ensemble/quantile.pyx
      [3/3] Cythonizing sklearn_quantile/utils/weighted_quantile.pyx
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

I hope this helps.
Here also some system information:

    System Software Overview:

      System Version: macOS 13.2.1 (22D68)
      Kernel Version: Darwin 22.3.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: Mac14,9
      Model Number: Z17L001PWN/A
      Chip: Apple M2 Pro
      Total Number of Cores: 12 (8 performance and 4 efficiency)
      Memory: 32 GB
      System Firmware Version: 8419.80.7
      OS Loader Version: 8419.80.7
      Serial Number (system): XFKGP4R25H
      Hardware UUID: 4FDD49BF-5D80-5338-9002-87C3BB74E3D7
      Provisioning UDID: 00006020-000470810A87401E
      Activation Lock Status: Enabled

Dear Sem,
This seems very strange. I have run the same command on mamba, and works without problems. Running the same operating system. Maybe you could try to delete the mamba cache and try the operation again.
The saw the issue with pip not picking up on the dependencies. I have been trying to resolve this, but haven't managed yet. What if you try the following.
mamba create -n test pip
mamba activate test
pip install packaging numpy cython
pip install sklearn-quantile

This works for me and installs the latest version of sklearn-quantile (v0.0.21). Let me know if you manage to make this work.
Cheers,
Jasper

Also, which cython version did you use for compilation when taking the pypi route?

Dear Jasper,
Thanks for your help!
I copied and executed:
mamba create -n test pip
mamba activate test
pip install packaging numpy cython
pip install sklearn-quantile

Unfortunately I got the identical Cython error. The Cython version it installed is 3.0.2.
Maybe it relates to my Mac M2 chip / Cython compatibility? I will google a bit.

Note, I forked the repo and managed to install it when changing the datatypes from np.ulong_t to int. I have no experience with Cython code, so I was just wildly guessing here.
cdef struct IndexedElement:
    int index
    np.float32_t value

cdef int _compare(const_void *a, const_void *b):
    cdef np.float32_t v
    if isnan((<IndexedElement*> a).value): return 1
    if isnan((<IndexedElement*> b).value): return -1
    v = (<IndexedElement*> a).value-(<IndexedElement*> b).value
    if v < 0: return -1
    if v >= 0: return 1

cdef long[:] argsort(float[:] data) nogil:
    """source: https://github.com/jcrudy/cython-argsort/blob/master/cyargsort/argsort.pyx"""
    cdef int i
    cdef int n = data.shape[0]
    cdef long[:] order

My current solution:
conda create -n test pip
conda activate test
pip install packaging numpy cython==0.29.34
pip install "git+https://github.com/Beyond-Weather-Git/sklearn-quantile.git"

I updated the setup.cfg to pyproject.toml (which allows to specify installations (Cython + numpy) that are needed for the build (installation of sklearn-quantile).
 pip install git+https://github.com/Beyond-Weather-Git/sklearn-quantile.git@updated_pyproject_toml

Thanks for the update. I have checked the numpy documentation and they suggest moving from np.ulong_t to np.intp_t. I just tested it with the new Cython version, and that compiled without issues. That seems much cleaner than depending on an old version of Cython.
I never used pyproject.toml. Do you think that is recognised by conda-forge?

Dear Jasper,
Thanks for the update!
I believe they are currently working on pyproject support: https://github.com/conda/conda/issues/12462

I have updated the code and pushed everything to PyPI and conda (version 0.0.29). It should now again be installable without issues. I will close this issue, if it persists feel free to reopen.


services_include kernel-extras does not work for ros install

RancherOS Version: v1.5.4
Where are you running RancherOS? Bare-Metal Machine
Trying to do ros install does not work if the cloud-config.yml file contains these lines:
rancher:
  services_include:
    kernel-extras: true

This is required to get some kernel drivers working properly on bare-metal machines with standard Atheros hardware.

I got a similar problem but only if I use '-s' ros command option.
Here are the debug error message I get:
...
time="2019-11-07T15:19:47Z" level=debug msg="installRancher done"
+ root=/mnt/install
+ cache=/var/lib/rancher/cache
+ preload=/var/lib/rancher/preload/system-docker
+ partition=/host/dev/sda1
+ images='docker.io/rancher/os-extras:${KERNEL_VERSION}'
+ mkdir -p /mnt/install
+ mount /host/dev/sda1 /mnt/install
+ cache_services
+ mkdir -p /mnt/install/var/lib/rancher/cache
+ cp /var/lib/rancher/cache/e97285ef31f174085d73451978695bae /mnt/install/var/lib/rancher/cache
+ cache_images
+ mkdir -p /mnt/install/var/lib/rancher/preload/system-docker
+ system-docker pull 'docker.io/rancher/os-extras:${KERNEL_VERSION}'
invalid reference format
time="2019-11-07T15:19:47Z" level=fatal msg="Failed to run install" err="exit status 1"

I tried RancherOS v1.5.2, v1.5.3, v1.5.4 and saw the same issue.

Add on v1.5.5 to that


test: Migrate to telmetry gen for metrics

Description
Changes proposed in this pull request (what was done and why):

move to telemetrygen
Refactor  and Cleanup match metrics unit tests
clean up urls package

Changes refer to particular issues, PRs or documents:

Traceability

[ ] The PR is linked to a GitHub issue.
[ ] New features have a milestone set.
[ ] New features have defined acceptance criteria in a corresponding GitHub Issue, and all criteria are satisfied with this PR.
[x] The corresponding GitHub issue has a respective area and kind label.
[ ] The follow-up issues (if any) are linked in the Related Issues section.
[ ] Adjusted the documentation if the change is user-facing.
[ ] The feature is unit-tested
[x] The feature is e2e-tested

/unhold


Firmware Upgrade on EOL Releases

If you check for upgrades on a 17.7.12_1 it will find and install the update to 17.7.12_2. If you then click again on "check for updates" it will display that all is current. To get the upgrade to 18.1 you have to go back to the Dashboard and check for updates to see the EOL Message and unlock the new release.
In my opinion the EOL Message and Unlock should be displayed even if I check from the updater directly.

Sure, but who will do the work for this cosmetic bug? :)

The menu has a similar issue after firmware upgrade when new items have been added or were removed.

Solving this via #2153.


Describe the purpose of the library

In README.md we should explain what problem this library solves.

The main purposes are: easier resource management, leading to lower risk of programming errors; better fault handling (through exceptions); more compact user code.  Originally, the API enforced RAII to even further reduce the risk of faulty code, but enforcing RAII and compatibility with (unmanaged) objects obtained outside this API are mutually exclusive.

This library is a C++ wrapper for the Nvidia C libraries (e.g. CUDA driver, nvrtc, cuFFT etc.)

above mentioned main purposes.

PR was merged, closing this issue


client component for nextjs app router

Using carousel on server components in nextjs app router throws error
Can you add "use client" at the top of files that uses client side hooks ? It will solve the error.

I've never thought about using components in Next.js before.
I'll test it with 'use client' statement, then let you know soon.

@zatakiya, I just tested the package on a NEXT.js application, and it worked well. It seems like I need to include the 'use client' statement in your component where you want to use the package, not in the library itself. I encountered a similar error when that 'use client' statement was missing.

I tried, but the 'use client' statement is being ignored during the bundling process. It's probably because 'use client' is special syntax used in NEXT.js. For now, it's recommended to use it within a client component.

Let me know if you find a solution or need further assistance.


Census: When no response is selected for 7. Are you a schoolchild or student? gives Error 404

Expected behaviour
When no response is selected and [Save and continue] must navigate to Question 9. What is your country of birth?
Actual behaviour
Giving Error 404
Steps to reproduce the behaviour
A branch is created with a selenium test to reproduce the issue.
https://github.com/ONSdigital/eq-survey-runner/tree/are-you-a-schoochild-issue
yarn run test_functional -- --spec=census/issues/are-you-a-schoolchild
Technical information
Browser
All
Operating System
Screenshot

Re-test of this Defect Passed QA.


docs(generate): adapt to manifest changes and general fixes

Codecov Report

:exclamation: No coverage uploaded for pull request base (lit-migration@12a1a71). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Current head 91eee07 differs from pull request most recent head a2d2328. Consider uploading reports for the commit a2d2328 to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@               Coverage Diff                @@
##             lit-migration    #2135   +/-   ##
================================================
  Coverage                 ?   95.67%
================================================
  Files                    ?      230
  Lines                    ?    36523
  Branches                 ?     2103
================================================
  Hits                     ?    34944
  Misses                   ?     1540
  Partials                 ?       39

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


not moving the pr to "awaiting review" when its in draft

Summary
title
What is the feature request for?
github
The Problem
so i just make a pr
its still a draft
but Progress[automation] moved it to awaiting review
The Ideal Solution
title
The Current Solution
No response
Additional Context
No response

Most project automations were deleted a few days ago


Feature Added Shop Landing Page

Issue  📐327

I Alcadeus0 have worked for #327

Guidelines 🔐
I accept the fact that i have followed the guidelines and have not copied the codes from around the internet

[x] Contribution Guidelines
[x] Code of Conduct

Issue to be closed 🛅

My pull request closes #327

Screenshots 📷
Here are the pictures of changes that i have made 🔽

I've made the changes have a look

alright i've taken care of it. Hopefully this solves everything


Always use latest runtime and cli for sample validation

Description
Always use latest runtime and cli for sample validation
This change was already deployed in the GO-SDK: https://github.com/dapr/go-sdk/pull/192/
You can see an example run from the past hour here: https://github.com/dapr/go-sdk/runs/3163493512?check_suite_focus=true

@wcs1only the code coverage is fine .. change is only in:
.tox/py37/lib/python3.7 which I didn't touch.
https://app.codecov.io/gh/dapr/python-sdk/compare/247/tree/.tox/py37/lib/python3.7

@wcs1only the code coverage is fine .. change is only in:
.tox/py37/lib/python3.7 which I didn't touch.
https://app.codecov.io/gh/dapr/python-sdk/compare/247/tree/.tox/py37/lib/python3.7

Yeah, fixed this via: #246

@wcs1only good timing. Looks good now! :)


Is there a way to add timestamp to show notification  for user, even though it's not on the site anymore?

Example:
I need to show a notification after the user go out of my website and this notification can be show hours after in the same day or maybe in another day to bring back my user. Like a timestamp to show.
It's be possible? Someone can help me? Thanks.

This is not possible atleast in a straightforward manner with the current implementation of Push.js.
You might want to look into service workers and server-side push notifications.


cargo: Change some dependencies

@crobinso I agree, I left some comments on the commit messages. Can you re-review?


Fetch github commits.

Integrate github apis to fetch all the commits of an user in a single day.

Created fetch-github-commits branch for this task.
https://github.com/0PEIN0/autogger/tree/fetch-github-commits
Parent branch is develop.


PermissionsAndroid: The system permission prompt is still shown if the "rationale" dialog box is rejected

Description
PermissionsAndroid::request seems to ignore the user selection in the "rationale" dialog box, and always shows the follow-up system permission dialog box.
Expectation: If the user clicks the neutral or negative buttons in the "rationale" dialog box, or taps outside the dialog box itself, the permission is denied and no follow-up system prompt is shown.
Actual: The follow-up system prompt is shown regardless of the user selection.
React Native version:
System:
    OS: macOS 10.15.4
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 1.90 GB / 32.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 13.2.0 - ~/.nvm/versions/node/v13.2.0/bin/node
    Yarn: 1.21.1 - ~/.dev/yarn/1.21.1/bin/yarn
    npm: 6.13.1 - ~/.nvm/versions/node/v13.2.0/bin/npm
  SDKs:
    iOS SDK:
      Platforms: iOS 13.4, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
    Android SDK:
      API Levels: 21, 24, 25, 26, 27, 28, 29
      Build Tools: 26.0.2, 28.0.3, 29.0.2
      System Images: android-21 | Google APIs Intel x86 Atom, android-22 | Google APIs Intel x86 Atom, android-23 | Intel x86 Atom, android-23 | Google APIs Intel x86 Atom_64, android-24 | Google APIs Intel x86 Atom, android-24 | Google Play Intel x86 Atom, android-25 | Google APIs Intel x86 Atom_64, android-26 | Google APIs Intel x86 Atom, android-26 | Google APIs Intel x86 Atom_64, android-27 | Google Play Intel x86 Atom, android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom, android-29 | Google Play Intel x86 Atom
  IDEs:
    Android Studio: 3.6 AI-192.7<IP_ADDRESS>41897
    Xcode: 11.4.1/11E503a - /usr/bin/xcodebuild
  npmPackages:
    react: 16.9.0 => 16.9.0
    react-native: 0.61.2 => 0.61.2

Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.

The permission history has been cleared via adb shell pm reset-permissions PACKAGE_ID android.permission.ACCESS_FINE_LOCATION
The permission is requested in code when the button is pressed
Since this is the first time the request is made, the system prompt is shown (correctly)
The request is denied
The button is pressed again; that requests the permission again in code
This time the rationale dialog is first shown (correctly)
The negative button/neutral button/area outside the dialog is clicked
Expectation: no follow-up dialogs, and the permission gets rejected. Actual: The user is spammed with a follow-up system dialog.

See the following GIF for the visual context:

Expected Results
The follow-up system dialog is only shown if the user clicks the "Positive button"
Snack, code example, screenshot, or link to a repository:
This code snippet is used for requesting the permission when the button is pressed:
const result = await PermissionsAndroid.request(
      'android.permission.ACCESS_FINE_LOCATION',
      {
        title: 'Some permission title',
        message: 'Some permission message',
        buttonPositive: 'Positive button',
        buttonNegative: 'Negative button',
        buttonNeutral: 'Neutral button',
      }
    )

I did some initial digging to see why this is happening. Here are some of my findings:
It looks like the "button pressed" callback passed to the NativeDialogManagerAndroid.showAlert function is not checking which button was actually pressed. Looking at the signature of showAlert, it should pass the DialogButtonKey as the second param. So given my limited understanding, I think the fix should just involve adding a buttonKey check there.

This one still needs attention

This one still needs attention

Having the same problem - no matter if the user taps on the positive or negative button, the system pop-up for requesting permission is still displayed.

This issue might have been solved by https://github.com/facebook/react-native/pull/28201, but it still needs someone to review it.

I am facing the same issue

when pressed "Not Now", it shows a second system dialog

FB team: Could we get an update about this bug?

No updates? :(


SparseSet, replacing NumberPredicate

This replaces NumberPredicate. Sparse set is a somewhat standard data structure, unlike NumberPredicate, and it is better - insertion, removal / iteration are all always constant / linear. The code also became simpler, which was the primary goal, in order to make Juraj happy.
Please try to check at least the interface and declarations of stuff (a lot of it is coppied from the internet btw ... )
Should we use add and remove, or insert and erase? So far there are both. std::set has insert and erase I think (?).
But we should also be compatible with other data structures, as delta, which uses add and remove (potentially change those too?).
I wanted to overload insertion/deletion, to allow taking a vector or a container of elements as parameter, and made templates for it to work for any container (also for constructors).
The compiler got confused, could not distinguish between container and basic one element variants. I solved it by renaming the batch insertion deletion to insert_all, erase_all, ugly. Have you encountered this kind of problems?
(a version where one just gives begin and end iterator as parameters instead of the whole contiainer worked, but it is verbose and used quite often)

I wanted to overload insertion/deletion, to allow taking a vector or a container of elements as parameter, and made templates for it to work for any container (also for constructors). The compiler got confused, could not distinguish between container and basic one element variants. Have you encountered this kind of problems?

I believe I know what the problem is. But that does not mean the solution is simple. We can try to solve it before merging the PR.

Should we use add and remove, or insert and erase? So far there are both. std::set has insert and erase I think (?).
But we should also be compatible with other data structures, as delta, which uses add and remove (potentially change those too?).

We should discuss this further across all our data structures. Maybe we can agree on some kind of common interface functions (as in, some common names), or just keep these diverse names for similar operations, as it is now.

When the PR is done, @tfiedor or I will fix the binding. Give us a poke when the PR is finished.

We need to create new constructors (both copy and move) accepting initial and final states as sparse set (for move use std::move()).

To speed things up, it was decided that we will merge this PR without any further reviews.
If you have any comments to this PR, feel free to comment here further, and we will resolve these comments as we go.


Comments with apostrophes disrupt code block indentation

Issue Type: Bug
I only tested in javascript.
Commented apostrophes on the same line as code that makes up a block will cause all lines after in a block of code to be indented incorrectly when you run the command 'Reindent Lines' via ctrl + shift + P
// good indent
if() {
    if() {

    } else {

    }
}

// bad indent
if() { //'

if() {

} else {

}
}

VS Code version: Code - Insiders 1.42.0-insider (705f01577dd37d6f17eaa683ab89b0c392fa1a7c, 2020-02-03T14:02:55.075Z)
OS version: Windows_NT x64 10.0.18362

I can reproduce this with other characters as well
`"'

We have increase indentation rules like
^((?!\/\/).)*(\{[^}"'`]*|\([^)"'`]*|\[[^\]"'`]*)$

and the part which leads to this issue is
\{[^}"'`]*

{" will then not match

@mjbvz the onEnter rules have higher priority than the indentation rules, so if tweaking the indentations is too complex, we can probably add a new onEnter rule for this case in particular.


Pre-select scopes in new token link

Might it be an idea to pre-select the required scopes in the "new personal access token" link in the README by adding the relevant scopes as comma-separated values for the 'scopes' parameter, e.g.: https://github.com/settings/tokens/new?scopes=repo:status,public_repo,read:user,read:org

That's a fantastic idea! Mind opening a pull request with that change? :heart:

Done :)

Just a thought - when gitty does not find either GITHUB_TOKEN or GITTY_TOKEN - would it be possible and considered practical to open the browser at that location (maybe after asking for permission to do so)?
https://github.com/muesli/gitty/pull/14/commits/029221e6ff306706f7dccdecdc58c5129cf2ad45

@elbosso I agree, we should ideally do that. Mind opening a separate issue for that feature?


Comments inside ObjectLiterals are not supported yet

these comments are stripped out (for now):
Turtle.prototype = {
  /**
   * eats salad
   */

  eat: function() { return true; },

  /**
   * wades in water
   */
  swim: function() { return true; }
}

[demo](http://js2.coffee/#try:Turtle.prototype %3D {
  %2F**
   * eats salad
   *%2F

  eat%3A function() { return true%3B }%2C

  %2F**
   * wades in water
   *%2F
  swim%3A function() { return true%3B }
}

+1. Format
//
// Comment
//

Also don't support.
Thanks.


Add ActionScript language

When will this be merged?

@vkbansal When @LeaVerou will have time to review the last version.

Looks fine to me, but I can't merge: there are conflicts. @Golmote, could you please fix the conflicts and then merge the PR? Thanks!


decouple debounce from observable

Updated to follow the new operator implementation pattern.
Please review.
Thank you,
Grigoriy

Re-implemented using a pattern for lifters in a new PR, closing this one.


BWS sends out two notifications

When a wallet receives a transaction, I can see one entry in the bcmonitor.log, "Incoming tx for wallet XXXXXXX", but then there are always two entries for push notifications and emails. The server sends out two emails and two push notification to the Android app.
Edit: Never mind, Lock and Message queue wasn't setup properly (multi server setup)

I was stolen
2017-06-15 9:21 GMT+07:00 Magma Hindenburg<EMAIL_ADDRESS>
Closed #667 https://github.com/bitpay/bitcore-wallet-service/issues/667.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bitpay/bitcore-wallet-service/issues/667#event-1124350108,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AboOHjwkmeWbTVM2fRhn09TDIOrC-fh1ks5sEJVCgaJpZM4N5pF9
.

I managed to fix the issue with two push notifications arriving to the app, but the transaction is displayed twice on the home page.

This is a log from the app:
It sends out two notifications with different id, but the txid is the same.
BWC Notification: {"version":"1.0.0","createdOn":1497771676,"id":"014977716760030000","type":"NewIncomingTx","data":{"txid":"3145c4e86270674aa90957c652128aa38e057ecc4bc1737d10dfcc6faef2dbfc","address":"n3ECM55MM4wheBT55g8KKRutkwjpLNDEbs","amount":100000000},"walletId":"a5b40589-86b5-4f4b-bc0f-a00108cdf06c","creatorId":null}
Updating wallet:Test
Updating Status: Test null
BWC Notification: {"version":"1.0.0","createdOn":1497771676,"id":"014977716760170000","type":"NewIncomingTx","data":{"txid":"3145c4e86270674aa90957c652128aa38e057ecc4bc1737d10dfcc6faef2dbfc","address":"n3ECM55MM4wheBT55g8KKRutkwjpLNDEbs","amount":100000000},"walletId":"a5b40589-86b5-4f4b-bc0f-a00108cdf06c","creatorId":null}


Make it easier for customers to find out what value to provide for a discriminator property in a polymorphic type

Previously, customers have complained that they find it difficult to provide a value for the discriminator property. Moreover they have argued that while declaring the model type if I am saying that it is a cat then why do you ask me to provide that information. Doesn't the sdk already know this?
Well that is actually true. The sdk knows this information but this info is in the model mapper. At runtime (i.e. in javascript that gets executed), the sdk gets a json object. We validate that json object against the model mapper that we know is associated for that operation. However, we would only know whether it is an Animal or a Cat or a Dog, based on what value the customer provides for the discriminator property.
Our model types are TypeScript Interfaces. We have chosen them to be interfaces over classes for multiple reasons. Typescript restricts us from providing default values for a property of an interface and it makes sense. However, that does not help us in solving the above problem faced by our customers.
Possible solutions that come to my mind are as follows:

Ensure that the documentation of the discriminator property contains all the possible values in the documentation of that property. This will help customers who do not want to use TS.
Create an enum of discriminator values. This allows us to map x-ms-discriminator values as value of the enum. The discriminator property is specified in every model with the possible value for that type.

export enum AnimalType {
  Animal = "Animal",
  Cat = "Cat",
  Dog = "Dog"
}
export interface Animal {
  type: AnimalType; // Here I have provided the enum as a type
  id: number;
  name: string;
}

export interface Cat extends Animal {
  type: AnimalType.Cat; // Here it is the specific type Cat
  weight: number;
}

export interface Dog extends Animal {
  type: AnimalType.Dog; // Specific type Dog
  color: string;
}

const a: Animal = {
  id: 1,
  name: "SomeAnimal",
  type: AnimalType.Animal // However one still needs to specify the type otherwise TS complains
}

const c: Cat = {
  id: 2,
  name: "BobCat",
  weight: 20,
  type: AnimalType.Cat // However one still needs to specify the type otherwise TS complains. Couldn't get TS to auto populate the value for type. However this is still better as it guides the customer to the right path.
}

Create a type of possible discriminator values. For more context take a look over here.

export type AnimalType : "Animal" | "Cat" | "Dog".

export interface Animal {
  type: AnimalType;
  id: number;
  name: string;
}

export interface Cat extends Animal {
  weight: number;
}

export interface Dog extends Animal {
  color: string;
}

const a: Animal = {
  id: 1,
  name: "SomeAnimal",
  type: "Animal"
}

const c: Cat = {
  id: 2,
  name: "BobCat",
  weight: 20,
  type: "Cat"
}

Let's ensure the documentation for a discriminator property shows all the possible values and make its type a union of literal strings ("Animal" | "Cat" | "Dog"). The string enum approach is not as nice for TypeScript developers because it makes it a type error to provide "Animal" instead of AnimalType.Animal.

Namespaces can also be used to give a good completion experience and might look like:
export type AnimalType = "Animal" | "Cat" | "Dog";
export namespace AnimalType {
  export const Animal = "Animal";
  export const Cat = "Cat";
  export const Dog = "Dog";
}

let foo: AnimalType = "Animal";
let bar: AnimalType = AnimalType.Animal;

It's worth noting that type declarations don't exist after compilation while enum and namespace declarations will.

Duplicate of https://github.com/Azure/azure-sdk-for-node/issues/2960.


Add [John Rhodel] to Rookie list

Description
Welcome! We are excited to have you on board. This is your first formal step in making it official that you are a part of the Polkadot Heroes program as either a hero or a rookie. Please fill out your profile details in this pull request. Remember to place your profile in alphabetical order in the list, add your profile image to the ./images subfolder of either the Heroes/ or Rookies/ folder, and fill out all the informational fields in your card. You can copy and paste someone else's card and replace their information with your own.
Make sure to preview your additions in the Heroes/README.md or the Rookies/README.md file to confirm it looks as expected.
Checklist:

[ ] My name is alphabetically ordered by first name in the README
[x] My profile picture is added to the /images folder of either the Heroes/ or the Rookies/ directory
[ ] All the fields are filled out for my profile (see the other profiles for examples)

pull request polkadot

Hi @johnrhodel!
Welcome! Can you please also include the image in this pull request?

How strange that, my image was not uploaded

@hummusonrails i believe its ok now


ValueError: low >= high

https://github.com/ivanvovk/WaveGrad/blob/6be2f4c228e366eb850db5983344508c0d0fac87/data.py#L47-L49
Since np.random.randint has the right exclusive boundary, np.random.randint(0, 0) raises an error. Consider to switch to random.randint or change to audio.shape[-1] > self.segment_length?

@enhuiz Yeah, you are right, it is a bug. Thank you for your feedback. I will push an update with second approach.

Closing issue since the problem is solved.


FE: clicking into categories does not show that category

I feel like clicking this button should only show avatars:

On the assets page there could be categories on the left:

Similar to https://github.com/webaverse/app/issues/459

Similar to https://github.com/webaverse/app/issues/459

Closing in favor of #459

Closing in favor of #459


Cannot bind uncaughtException & unhandledRejection together

Hello,
it looks like you can bind to both. Is there any particoular reason?
Also, would you expose the exit function so that one can eventually calll it manually?

Sorry for the late response!

it looks like you can bind to both. Is there any particoular reason?

Yes, one might want to bind different handlers. Should make a generic exit handler though.. Any suggestions for names etc.?

Also, would you expose the exit function so that one can eventually calll it manually?

Interesting idea, I'll have to give this further thought, but possibly.

on the exit function, that would be a good idea, as then there's a safe way to exit the process.
Possibly even override process.exit to be safe (but that should be optional)

on the exit function, that would be a good idea, as then there's a safe way to exit the process. Possibly even override process.exit to be safe (but that should be optional)

Currently figuring out all the implications of this. I'll try to carve out some more OSS time next weekend and get this in. Small change but node's process lifecycle is quite unfriendly to customisation, in part due to OS differences.

@Tapppi working with AsyncExitHook more essentially what I think it needs to do is simply
on asyncExitHook.exit(0);

fire exit handlers
wait until all are complete (maybe have a timeout here.)
then call process.exit(code);

@Tapppi any movement here?

Just saying, I ran across this again today

Workaround for now. done use either function and do this instead.
import asyncExitHook from 'async-exit-hook';

let stopped = false;

/**
 * closes thingy before exiting
 * @param {function} cb callback for async exit hook
 */
function shutdown(cb = () => {}) {
    if (!stopped) {
        stopped = true;
        Logger.info('thingy is shutting down...');

        thingy1.stop((success) => {
            thingy2.shutdown().finally(() => cb());
        });
    }
}

asyncExitHook((cb) => {
    Logger.info('thingy is exiting');
    shutdown(cb);
});

asyncExitHook.hookEvent('uncaughtException', 1, (err) => {
    Logger.fatal('thingy is shutting down due to UncaughtException...');
    return false;
});

asyncExitHook.hookEvent('unhandledRejection', 2, (err) => {
    Logger.fatal('thingy is shutting down due to unhandledRejectionHandler...');
    return false;
});

@Tapppi: this problem needs to write in the documentation. Or need to fix it.

please fix this, i lost a few hours debugging

There are two problems with the current implementation:
1. Only the first hooked event is registered.
Both registration functions check for the single errHooks array's length.
https://github.com/Tapppi/async-exit-hook/blob/80e692c88e62a88cf5750460ff02c28298e5b09b/index.js#L151 https://github.com/Tapppi/async-exit-hook/blob/80e692c88e62a88cf5750460ff02c28298e5b09b/index.js#L160
2. All error hook handlers will be called, even if they weren't registered on that event (from 1).
Both errors trigger all errHooks.
https://github.com/Tapppi/async-exit-hook/blob/80e692c88e62a88cf5750460ff02c28298e5b09b/index.js#L69
Solution
Both can be fixed by using separate arrays - eg uncaughtExceptionHooks and unhandledRejectionHooks and checking for the actual error at
https://github.com/Tapppi/async-exit-hook/blob/80e692c88e62a88cf5750460ff02c28298e5b09b/index.js#L67


[KTX] Combine location permissions with other permissions

Overview

With the help of constructPermissionsRequest fun we can request multiple permissions at the same time (for example, Camera and Microphone), by passing multiple permissions to the function (vararg).
But location permissions have a different function for handling requests (constructLocationPermissionRequest). So how we can combine location permissions with other permissions at the same time?

Expected

Combine all permissions like:
constructPermissionsRequest(CAMERA, LOCATION_FINE) { TODO() }

Actual

We have to launch location permission after camera granted:
constructPermissionsRequest(CAMERA) { constructLocationPermissionRequest(LOCATION_FINE) { TODO() } }

Environment

Which library version are you using? 1.1.2
On which devices do you observe the issue? ALL

Hi, you can use constructPermissionsRequest along with location permission if you want to. constructLocationPermissionRequest is just a helper function to address with https://github.com/permissions-dispatcher/PermissionsDispatcher/issues/646 without any additional effort.

Thanks


Add logic to extract snapshot blob for the suitable device architecture

The change is necessary in order to reduce the installed application size when using snapshot blobs.
ping: @jasssonpet @atanasovg @slavchev @blagoev

:+1:

ping @jasssonpet

:+1:

Seems to work fine 👍


Namespace should be configured to be monitored by cluster monitoring

When deployed through OLM, the default namespace (openshift-keda) does not contain the label to be included in the cluster monitoring (openshift.io/cluster-monitoring: "true"), so no service monitors can be added.
Use-Case
Have a concrete monitoring what keda is doing (events, metrics, etc)
Specification

This is the first needed feature to include automatically keda in the cluster monitoring space.

/remove-lifecycle stale

As far as I can tell, there isn't any way for us to fix this. The namespace is created by the OpenShift console as part of the install, and there is no option for us to tell the console how to annotate the newly-created namespace.

That looks like an enhancement proposal in implementable state, not documentation. Are you sure that the proposal was implemented? If so, we can certainly add the annotation, but it still looks as though the user is required to check a box during installation, right?


Chore: cargo outdated, bump rustc-hash to version 2.0.0, no additional fixups

This is a small thing, but I find without constant small PRs keeping the list of things reported by "cargo outdated" small ....


Add custom path rendering in prompt

Along the same lines as with the work done for issue #386 it would be nice to more finely tune the path portion of the prompt. With older versions of posh-git I would typically hand edit my Profile to customize this but with the more extensible model through use of variables I think extending it this way will be cleaner and make it easier to setup a new custom environment up in a way that is less likely to break with updates.
Example custom path
Before:
C:\root\sub1\sub2\sub3\workingdir [develop ≡ +0 ~1 -0 !]>

After:
$GitPromptSettings.DefaultPromptPathTemplate = '$([System
.IO.Path]::GetFileName($currentPath))'

workingdir [develop ≡ +0 ~1 -0 !]>

What about non file-system paths?
Perhaps it would be more convenient to have a separate DefaultPromptFilePathTemplate and DefaultPromptPathTemplate just reduce the need for logical checks on the type of path for cases where the path is not a file system path.
What about home directory abbreviation?
Perhaps DefaultPromptAbbreviateHomeDirectory can be re-implemented in terms of this template.
Template vs. Function
Maybe it's more reasonable to provide a way way of supplying or overriding a function that provides the path string as a result instead of trying to embed this stuff into a expanded string template. I'm not sure what the common conventions are in the PowerShell world for providing for this type of extensibility model but I have some ideas of what may work.
I'll be happy to take a stab at contributing the change if it's something others may be interested in.

I really like this idea. Let's try a DefaultPromptPath (IMO drop "Template" in alignment with prefix/suffix settings) that defaults to '$(currentPath)' so folks have a starting point for customization.
Another option would be to skip the new setting and just have DefaultPromptPrefix default to '$(currentPath)'. It would be a breaking change for anyone who has already specified a DefaultPromptPrefix, but I'm not super worried about this.

What about non file-system paths?

I'm not too worried about this. The cost of the default prompt putting together $currentPath is trivial, and if someone really wants super-fancy logic they can just define their own function to reference in the template.

What about home directory abbreviation?

No change here should be required since $currentPath will be available to the template.

I'll be happy to take a stab at contributing the change if it's something others may be interested in.

That would be great! Let me know if you need any assistance.

What about non file-system paths?

One option is to check $pwd.Provider.Name in poshGitPromptScriptBlock  and if it isn't FileSystem, just use the $currentPath as it is defined in that ScriptBlock. I think most folks using this are probably only concerned about FileSystem paths.  If anyone wants to control other provider paths, they can create a custom prompt function.

What about home directory abbreviation?

@dahlbyk So you would apply the DefaultPromptAbbreviateHomeDirectory after the $currentPath has been set by DefaultPromptPath (if the current location is on a FileSystem provider).  Yeah, I like that.

I was actually thinking the other direction: let $currentPath always encapsulate our default/best prompt representation (abbreviated, if specified), and DefaultPromptPath (or DefaultPromptPrefix) would use that by default, but let folks manipulate that value (as in @jpierson's example) or do something like:
function Get-MyFancyPath ($path) {
  if ($pwd.Provider.Name -ne 'FileSystem') { return "OMG! $path" }
  "FileSystem:$path"
}

$GitPromptSettings.DefaultPromptPath = '$(Get-MyFancyPath $currentPath)'

Considering DefaultPromptAbbreviateHomeDirectory is not set by default, that should give them the full path in $currentPath.  If we go this route, we should make a note in the poshGitPromptScriptBlock that user settings could be relying upon the variable name $currentPath and that it shouldn't be changed.  That's a bit leaky but could live with it.
Another route to go (would need to test this), would be to inject this value via a parameter in a scriptblock e.g.:
$GitPromptSettings.DefaultPromptPath = { param($path) Get-MyFancyPath $path }

Then this setting would not be dependent upon an implementation detail of our default prompt function.

All good points, @rkeithhill. Note also that this whole discussion may be superseded in v2 by #340/#344 and possibly #345. In that context, I'm not overly concerned about churn in poshGitPromptScriptBlock breaking $currentPath (or we could rename as $path beforehand to simplify the "API").
We could also check the type of DefaultPromptPath (and Prefix/Suffix) to handle either strings or ScriptBlocks. Maybe overkill?

I more concerned about getting this right for v2.  In v2, I would be inclined to support only scriptblocks when we need to pass parameters to the user's script.  Seems like a better approach.

It just occurred to me one possible reason why my suggestion may not have as much validity as I originally envisioned it would. If the custom path only applies to git repository folders then the customization would only apply there. Generally customization I mentioned above is something I like to apply for the path regardless of whether the path is for source code or not. The same is true for using ~ in place of the home directory.
So I guess my question is whether these values would impact non-git directories or not? If so I suppose my proposal still stands but either way perhaps Posh-Git isn't the correct place to customize the path as shown in the prompt assuming that this is essentially the only part of the path that makes sense to always carry through un-modified in general. Is there a more general way to override the "path" portion of the prompt in a way that posh-git and possibly other tools could pick up on for prompt customization?

Is there a more general way to override the "path" portion of the prompt in a way that posh-git and possibly other tools could pick up on for prompt customization?

Nope. prompt isn't extensible; it can only be replaced. The default PS prompt is hard-coded to use $executionContext.SessionState.Path.CurrentLocation, and posh-git starts with the same value.
Another approach to implement this could be to consolidate the posh-git path logic into a Get-PromptPath function that we "install" using the same technique as the custom prompt. All you would have to do is define your own Get-PromptPath function to preempt/replace the posh-git default.
(Equivalent to $GitPromptSettings.DefaultPromptPath = '$(Get-PromptPath)'.)


[BEAM-92] Allow value-dependent files in FileBasedSink

This is modeled off of the pattern used in BigQueryIO. The user can provide a DynamicDestinations class which can map the input into a user-defined destination type, and the destination into a FilenamePolicy. Some refactoring of FilenamePolicy is done as well to make this more useful - e.g. allowing FilenamePolicy to pick its own base directory instead of having it passed in from the sink (this is marked as @Experimental, so such changes are allowed).
Not yet in this PR: we should allow the sinks to take user-defined types for mapping. We should also provide a convenience method for dynamic output using the DefaultFilenamePolicy (e.g. passing in KVs).
R: @jkff

retest this please.

Coverage decreased (-0.2%) to 70.465% when pulling fb11745360f1c8757e524b44616a6bf2923eed0a on reuvenlax:dynamic_file_based_sink into 0cabdf6e776363e639f18779744da73f9d29bb5a on apache:master.

OK, I looked through the PR but I was taking notes in a text file :) Before I start nitpicking on code in detail, a bunch of high level comments:

Overall, this looks like a reasonable compromise and I don't have ideas on how to make this much better - unless you want to resurrect the discussion and try to come up with such ideas :) In particular, if we had unlimited time for design, I'd like to see the following. Perhaps that's like Beam-3.0 stuff, but anyway.
** It'd be cool if we could achieve more unification between wrapper transforms like AvroIO vs. TextIO vs. XmlIO vs. TFRecordIO (i.e. not duplicate much code when adding dynamic-destinations support to all of them) but that's topic for another PR.
** It'd be cool to have even more dynamicity, e.g. have an AvroIO.Write that can use different schemas for different destinations, as I suggested on the beam-dev thread<EMAIL_ADDRESS>.
WriteFiles seems to now unconditionally GBK all the data. Should we have a "fast path" for the common case, when writing unwindowed data to a single destination?
Test coverage for the new code seems mainly represented by a new TextIO test with dynamic destinations. I think there needs to be more explicit coverage for the new code in WriteFiles and FileBasedSink, and a dynamic destinations AvroIO test. Maybe run unit tests with coverage also - I think we should see near-100% coverage in these classes (FileBasedSink, WriteFiles) from running only their own unit tests.

@jkff responding to high-level comments first

I do think more unification will require Beam 3.0, though maybe we should start brainstorming soon.

This PR does not yet add support for Avro dynamic writes. I do have some ideas for how to add dynamic schema support. Essentially a DynamicAvros that extends DynamicDestinations, but adds a method mapping DestinationT -> Schema (with side-input access). The Avro schema today happens entirely in AvroWriter, so this doesn't require anything in FBS or WriteFiles. However, I wonder if this belongs in a separate PR.

I don't think all data is grouped by key. AFAICT this is only true if an explicit num shards was selected, in which case it was true before. In the regular path, I believe we only GBK in the spilling case.

Ack. Will add more unit tests.

Coverage decreased (-0.05%) to 70.825% when pulling f6c4a5471fabc837c22be660fb395f9082d0fb2b on reuvenlax:dynamic_file_based_sink into 16f87f49f20796e29d01ed363a9097ea5420583c on apache:master.

Coverage decreased (-0.03%) to 70.848% when pulling 8d7b7591c3c30b499dabd8ccc15b5562317af5d8 on reuvenlax:dynamic_file_based_sink into 16f87f49f20796e29d01ed363a9097ea5420583c on apache:master.

Coverage decreased (-0.04%) to 70.835% when pulling 53fcc25cf8d3561e2cb4ee8935cb3bf9205ccb36 on reuvenlax:dynamic_file_based_sink into 16f87f49f20796e29d01ed363a9097ea5420583c on apache:master.

Coverage decreased (-0.1%) to 70.725% when pulling 76d114be246a73d0438a26294d6e210e4a8004a8 on reuvenlax:dynamic_file_based_sink into 0e429b33ff85eba08da5018c9febd0b99b44f720 on apache:master.

Coverage decreased (-0.1%) to 70.735% when pulling 76d114be246a73d0438a26294d6e210e4a8004a8 on reuvenlax:dynamic_file_based_sink into 0e429b33ff85eba08da5018c9febd0b99b44f720 on apache:master.

Coverage decreased (-0.1%) to 70.722% when pulling 424e36c5cca696dc57cba361e80ac43725448943 on reuvenlax:dynamic_file_based_sink into 0e429b33ff85eba08da5018c9febd0b99b44f720 on apache:master.

retest this please.

Run Dataflow ValidatesRunner

Run Flink ValidatesRunner

Run Spark ValidatesRunner

Run Spark ValidatesRunner

Run Spark ValidatesRunner

Coverage decreased (-0.1%) to 70.704% when pulling 34d811f057d3b0d90fdbf1101de3dd949380f212 on reuvenlax:dynamic_file_based_sink into 0e429b33ff85eba08da5018c9febd0b99b44f720 on apache:master.

Run Spark ValidatesRunner

Run Dataflow ValidatesRunner

Run Spark ValidatesRunner

Run Dataflow ValidatesRunner

Coverage decreased (-0.1%) to 70.704% when pulling 269d6787a8fdf3b111d25d4d0470ad730cd97492 on reuvenlax:dynamic_file_based_sink into 0e429b33ff85eba08da5018c9febd0b99b44f720 on apache:master.

Changes Unknown when pulling 42ec51230473c010ad0e148c049b5eb6b22a0546 on reuvenlax:dynamic_file_based_sink into ** on apache:master**.

retest this please

Coverage decreased (-0.08%) to 70.893% when pulling b64efca83867a7f1eb6225462f0226ba84f324d3 on reuvenlax:dynamic_file_based_sink into 9f904dc00552349b535752e751ce82a7e484b471 on apache:master.

Coverage decreased (-0.09%) to 70.886% when pulling fcfed9361bd743d453fad7183f66b551d0a090d6 on reuvenlax:dynamic_file_based_sink into 9f904dc00552349b535752e751ce82a7e484b471 on apache:master.