Chains does not generate provenance for images built in a matrix

Expected Behavior
Chains should sign and attest all container images referenced in results of matrixed TaskRuns
Actual Behavior
All images are signed but there is only a provenance attestation for the first image.
Steps to Reproduce the Problem

Create a pipeline that uses a matrix to build container images
Only the first will have an attestation

The issue seems to be during the creation of the SLSA Provenance for PipelineRuns. If the underlying Pipeline uses matrix, Chains only includes one instance of the corresponding TaskRun.
The issue appears to be in https://github.com/tektoncd/chains/blob/be7c1baad4d239dea30f9973226ffaf931e67a0b/pkg/chains/formats/slsa/v1/pipelinerun/pipelinerun.go#L103-L107
Notice how there is an assumption that PipelineTaskRuns have unique name within a Pipeline.
This is not true when matrix is used.

I tried once using this example for matrix/multi-arch-build https://github.com/jkhelil/tekton-matrix/
and can see attestation for the different platforms
What's wrong with my reproducer ?
`
k create ns matrix
k apply -n matrix -k ./tekton-matrix/
k describe pr multi-arch-build-run -n matrix
Name:         multi-arch-build-run
Namespace:    matrix1
Labels:       tekton.dev/pipeline=multi-arch-build
Annotations:  chains.tekton.dev/signed: true
API Version:  tekton.dev/v1
Kind:         PipelineRun
Metadata:
Creation Timestamp:  2024-07-29T12:45:36Z
Finalizers:
chains.tekton.dev/pipelinerun
Generation:        1
Resource Version:  131409
UID:               2d6d3767-0475-40ac-92e3-26946b9673fb
Spec:
Params:
Name:   git-repo
Value:  https://github.com/jkhelil/minimal-container
Name:   git-revision
Value:  main
Name:   output-image
Value:  quay.io/jkhelil/minimal-container-matrix1
Name:   platforms
Value:
linux/amd64
linux/arm64
linux/arm/v7
Pipeline Ref:
Name:  multi-arch-build
Task Run Template:
Service Account Name:  default
Timeouts:
Pipeline:  1h0m0s
Workspaces:
Name:  shared
Persistent Volume Claim:
Claim Name:  tekton-build
Status:
Child References:
API Version:         tekton.dev/v1
Kind:                TaskRun
Name:                multi-arch-build-run-git-clone
Pipeline Task Name:  git-clone
API Version:         tekton.dev/v1
Kind:                TaskRun
Name:                multi-arch-build-run-build-images-1
Pipeline Task Name:  build-images
API Version:         tekton.dev/v1
Kind:                TaskRun
Name:                multi-arch-build-run-build-images-2
Pipeline Task Name:  build-images
API Version:         tekton.dev/v1
Kind:                TaskRun
Name:                multi-arch-build-run-build-images-0
Pipeline Task Name:  build-images
Completion Time:       2024-07-29T12:45:55Z
Conditions:
Last Transition Time:  2024-07-29T12:45:55Z
Message:               Tasks Completed: 2 (Failed: 0, Cancelled 0), Skipped: 0
Reason:                Succeeded
Status:                True
Type:                  Succeeded
Pipeline Spec:
Params:
Description:  Repository URL to clone from.
Name:         git-repo
Type:         string
Default:      main
Description:  Revision to checkout. (branch, tag, sha, ref, etc...)
Name:         git-revision
Type:         string
Description:  Reference of the image the pipeline will produce.
Name:         output-image
Type:         string
Default:
linux/amd64
linux/arm64
Description:  Target platforms for the image build.
Name:         platforms
Type:         array
Tasks:
Name:  git-clone
Params:
Name:   url
Value:  https://github.com/jkhelil/minimal-container
Name:   revision
Value:  main
Task Ref:
Kind:  Task
Name:  git-clone
Workspaces:
Name:       output
Workspace:  shared
Matrix:
Params:
Name:  PLATFORM
Value:
linux/amd64
linux/arm64
linux/arm/v7
Name:  build-images
Params:
Name:   IMAGE
Value:  quay.io/jkhelil/minimal-container-matrix1
Name:   STORAGE_DRIVER
Value:  vfs
Run After:
git-clone
Task Ref:
Kind:  Task
Name:  buildah
Workspaces:
Name:       source
Workspace:  shared
Workspaces:
Name:  shared
    tekton-matrix git:(main) skopeo inspect docker://quay.io/jkhelil/minimal-container-matrix1-linux/arm64 | jq '.RepoTags'

[
"latest",
"sha256-138a8b256f1003cb7e446aef3fdaaba3df3e10ce9880e59c9aabc5d6e3812fea.att",
"sha256-138a8b256f1003cb7e446aef3fdaaba3df3e10ce9880e59c9aabc5d6e3812fea.sig"
]
➜  tekton-matrix git:(main) skopeo inspect docker://quay.io/jkhelil/minimal-container-matrix1-linux/amd64 | jq '.RepoTags'
[
"latest",
"sha256-504295beaf5053d77879e7e9f01f07cf8e475ea506878767d7bb090715944b3d.att",
"sha256-504295beaf5053d77879e7e9f01f07cf8e475ea506878767d7bb090715944b3d.sig"
]
`

Even though Chains did not generate the pipeline provenance, the image was signed. I assume that this is because Cosign recursively signed the Image Index that I produced as well.

Even though Chains did not generate the pipeline provenance, the image was signed. I assume that this is because Cosign recursively signed the Image Index that I produced as well.

Cosign can do this, but it is not the default behavior. Chains does not explicitly set this.
At the TaskRun level, Chains works properly because the TaskRun does emit the expected results. Since image signing happens at this level, that part works just fine.
The problem is with the PipelineRun attestation. Here, Chains is not properly handing the case where a PipelineRun contains multiple PipelineTaskRuns with the same name.

@jkhelil, I suspect that the .sig and .att you are seeing are for the TaskRun-level artifacts. Can you verify that a PipelineRun attestation was generated for all the images?

yes thats correct, i can see the taskRun attestation only on the image


Support ES/Kibana 6.x

Is this in the plans anywhere? Is it as simple as just installing on an ES6 stack?

Hi,
Probably it runs with no issues on ES6. Haven't tried.
Has to be re-released following this instructions.
We're quite full in the coming days.
David

We've got an error during installation mathlion on kibana 6.2.2:

Plugin installation was unsuccessful due to error "Incorrect Kibana version in plugin [mathlion]. Expected [6.2.2]; found [5.6.4]"

So, does mathlion realy support Kibana >= 6.x? If it does - how to install it?

I can confirm that Mathlion 0.2.11 is working fine with Kibana 6.3.2. Just download mathlion-0.2.11_for_kibana-5.6.4.zip change "version" and "kibanas" in package.json to match your kibana version.
After that install the plugin with the zip file, instruction there :  https://www.elastic.co/guide/en/kibana/current/install-plugin.html

Works but I had to make a symbolic link on the most recent version (6.6.2):
ln -s /usr/share/kibana/src/legacy/core_plugins/ /usr/share/kibana/src/core_plugins

I do see an error though, e.g. when doing this: .es(*).math("a=source")
I see this error:
Timelion: Error: in cell #1: Cannot read property '0' of undefined


Query: DNS Service Discovery not working in GKE

Thanos, Prometheus and Golang version used:
Thanos: v0.10.1
Prometheus: 2.16.0

Object Storage Provider: GCS
What happened: When running multiple Store APIs behind a service (whether they are the Store component or a Prometheus Sidecar), Query will only pick one of the pods to discover.
What you expected to happen: I expected all pods behind the service to be discovered.
How to reproduce it (as minimally and precisely as possible): I don't know if this happens outside of GKE, but in GKE, deploy multiple Store components or multiple Prometheus instances with side cars behind a single service. Add a --store flag to the run command for your Query component, following any of the dns formats (dns+, dnssrv+, etc). Only 1 of the stores will show as being discovered in the Query logs and in the Query UI. This is more obvious when you have multiple Sidecars behind a service with different replica labels. Every time you restart Query, you will see it pick one of the replicas but never all of them.
Full logs to relevant components:

Anything else we need to know:

Hello. Does that DNS record point to multiple IP addresses? Have you checked with e.g. dig?

@alunsford Any update?

Hey, really sorry for never getting back to this. The DNS record is the internal dns record for the kubernetes service. We followed the example in the Service Discovery documentation:

DNS SRV record discovery also work well within Kubernetes. Consider the following example:
--store=dnssrv+_grpc._tcp.thanos-store.monitoring.svc

The services are deployed as NodePort types. We tried all of the different permutations listed under https://thanos.io/service-discovery.md/#dns-service-discovery without success. Ultimately we ended up programmatically generating a store-endpoints.yaml configmap to get around the issue.

Hi guys.
I had similar problem, but the fix is quite simple: just make your Service a Headless one (https://kubernetes.io/docs/concepts/services-networking/service/#headless-services). Then
you can easily take advantage of dnssrv+_grpc._tcp.<SVC_NAME>.<SVC_NAMESPACE>.svc.


improvement in installation guideline

@akshathar-navada i want to improve installation guideline  which is in readme.md with more badges and screenshots

please assign it to me

Yes go ahead!, open a PR, we will review it and would be happy to merge the request @ankitrajrj


Update sbt-microsites to 1.3.4

Updates com.47deg:sbt-microsites from 1.2.1 to 1.3.4.
GitHub Release Notes - Changelog - Version Diff
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!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.47deg", artifactId = "sbt-microsites" } ]

labels: sbt-plugin-update, semver-minor

Codecov Report

Merging #29 (086dab2) into master (4d7a553) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #29   +/-   ##
=======================================
  Coverage   97.43%   97.43%
=======================================
  Files          23       23
  Lines         895      895
  Branches        6        6
=======================================
  Hits          872      872
  Misses         23       23

Continue to review full report at Codecov.

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

Superseded by #77.


Change the password checking to be asynchronous.

https://github.com/Learn-by-doing/bitstarter/blob/master/controllers/login.js#L77

@victorbrender I think you can delete this one was solved.  I have no access to delete it, since you created it you should be able to delete it.

Done


Add kerberos support

Signed-off-by: Ruben Vargas<EMAIL_ADDRESS>This is a pure go solution.

I just signed the CLA.

Hi. I've just created my solution for kerberos auth, but I will be happy to test your solution (native is better than libsasl2 <3 ).

@mieczkowski WDYT?

@mieczkowski @eapache @bai Could you review this one please?
Thanks

Any updates on this?
Thanks

Thanks for your contribution!

@bai Is there a release planned soon to include this feature?

Yp, I'll cut a release in the next few days.

@bai Thanks!

Hi @bai, any update on when a release will be cut?

@rubenvp8510 I am trying to use kerberos authetication but getting error "wrong Token ID. Expected 0504, was 6030".
file name: /gssapi_kerberos.go
line no: 181
if err := wrapTokenReq.Unmarshal(bytes, true); err != nil {return nil, err}
Not getting any clue what i am doing wrong?
Please help.

@shriram1993 Could you please put information about your environment? version of kafka, how is it configured? how Kerberos is configured?
I see similar errors[1] on other libraries that relies on gokrb5 for handling Kerberos authentication messages, I think it could be something related to encryption.

https://github.com/colinmarc/hdfs/issues/145
Thanks.

Kafka version: 0.11.03
Kerberos Version: 1.15.1
Kerberos auth type: keytab file based
Kerberos server only supports SASL_PLAINTEXT.
The configuration set in krb5.conf
ticket_lifetime =       1d
renew_lifetime = 7d
forwardable = true
default_tgs_enctypes = rc4-hmac
default_tkt_enctypes = rc4-hmac
permitted_enctypes = rc4-hmac
udp_preference_limit = 1
kdc_timeout = 3000
proxiable       =       true
dns_lookup_realm = true
dns_lookup_kdc = false
allow_weak_crypto = false

How to support SASL_PLAINTEXT?

@rubenvp8510 I have the same question. My Kerberos server is expecting security protocol 'SASL_PLAINTEXT' but there is no way to set same in configuration. Please suggest.
cfg := sarama.NewConfig()
cfg.Producer.Return.Successes = true
cfg.Metadata.Retry.Max = 0
cfg.Net.SASL.Enable = true
cfg.Net.SASL.Mechanism = sarama.SASLTypeGSSAPI
cfg.Net.SASL.GSSAPI.ServiceName = "kafka"
cfg.Net.SASL.GSSAPI.AuthType = sarama.KRB5_KEYTAB_AUTH
cfg.Net.SASL.GSSAPI.KeyTabPath = ""
cfg.Net.SASL.GSSAPI.KerberosConfigPath = ""
cfg.Net.SASL.GSSAPI.Username = ""
cfg.Net.SASL.GSSAPI.Realm = ""

@rubenvp8510
I have the same question too.
Kerberos auth need support SASL_PLAINTEXT.

SASL_PLAINTEXT

I'm going to start looking at how to implement SASL_PLAINTEXT support .@yzpnet  @shriram1993 Could you provide me your kafka configuration? That will help a lot.
I'm a little bit confused, In one comment I read "Kerberos server only supports SASL_PLAINTEXT." but as far as I know the problem is not in the communication with the KDC but with Kafka
I'm assuming that the implementation needs to support Kafka SASL_PLAINTEXT + Kerberos.  correct me if I misunderstood please.
Thank you!

Kafka config:
properties.setProperty("bootstrap.servers", "kafka-hotels.example.com:9092");
properties.setProperty("key.serializer.class", "kafka.serializer.StringEncoder");
properties.setProperty("serializer.class", "kafka.serializer.DefaultEncoder");
properties.setProperty("request.required.acks", "1");
properties.setProperty("retries", "3");
properties.setProperty("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
properties.setProperty("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
properties.setProperty("compression.type", "snappy");
properties.setProperty("request.timeout.ms", "300000");
properties.setProperty("metadata.fetch.timeout.ms", "100000");
properties.setProperty("security.protocol", "SASL_PLAINTEXT");
properties.setProperty("sasl.kerberos.service.name", "kafka");
System.setProperty("java.security.krb5.conf", "/etc/kerberos/conf/krb5.conf");
System.setProperty("java.security.auth.login.config", "path of jaas-cache.conf");
jaas-cache.conf:
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="keytab.keytab"
storeKey=true
useTicketCache=false
serviceName="kafka"
<EMAIL_ADDRESS>};
Krb5.conf:
default_realm = EXAMPLE.COM
clockskew       =       300
ticket_lifetime =       1d
renew_lifetime = 7d
forwardable = true
default_tgs_enctypes = rc4-hmac
default_tkt_enctypes = rc4-hmac
permitted_enctypes = rc4-hmac
udp_preference_limit = 1
kdc_timeout = 3000
proxiable       =       true
dns_lookup_realm = true
dns_lookup_kdc = true
allow_weak_crypto = true

I'm a little bit confused, In one comment I read "Kerberos server only supports SASL_PLAINTEXT." but as far as I know the problem is not in the communication with the KDC but with Kafka
I'm assuming that the implementation needs to support Kafka SASL_PLAINTEXT + Kerberos. correct me if I misunderstood please.
Thank you!

Yes!! You are right. The issue is not with KDC it is with Kafka.
Kerberos only support SASL_PLAINTEXT means we are using Kerberos + Kafka with this security protocol SASL_PLAINTEXT.

well, this should work with SASL_PLAINTEXT by default, I'm reviewing what would cause the error you are seeing.

Hi @shriram1993  @yzpnet
After reviewing this in detail, I was managed to reproduce the issue, it seems like the actual implementation of Kerberos authentication does not support rc4-hmac.
The thing here is that the RFC-4121 (or at least the JAVA implementation) only support the use of aes128-cts-hmac-sha1-96 and  aes256-cts-hmac-sha1-96 as a method for encrypt and integrity check for tkt and tgs. For work with rc4-hmac we would need to implement RFC-1964.
So, I would say this should work if you configure your Active Directory[1] to support those encrypt types and your krb5.conf to use it (not sure but I think you need to regenerate your keytab files if you are using). You can also need to disable FAST negotiation, I'll send a PR  to expose that option for sarama.
Let me know if this works for you so I can close the corresponding issue. I'll test it and post my configs here.
1)https://blogs.msdn.microsoft.com/openspecification/2011/05/30/windows-configurations-for-kerberos-supported-encryption-type/

Hi again
Confirmed that the issue is with rc4-hmac
This is my configuration:
[logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log

[libdefaults]
    default_realm = EXAMPLE.COM
    clockskew = 300
    ticket_lifetime = 1d
    renew_lifetime = 7d
    forwardable = true
    default_tgs_enctypes = aes256-cts-hmac-sha1-96
    default_tkt_enctypes = aes256-cts-hmac-sha1-96
    permitted_enctypes = aes256-cts-hmac-sha1-96
    udp_preference_limit = 1
    kdc_timeout = 3000
    proxiable = true
    dns_lookup_realm = true
    dns_lookup_kdc = true
    allow_weak_crypto = true

[realms]
EXAMPLE.COM = {
     kdc = <IP_ADDRESS>
     admin_server = <IP_ADDRESS>
}

[domain_realm]
 .kerberoswin.com = EXAMPLE.COM
  kerberoswin.com = EXAMPLE.COM

Followed the guide mentioned in my previous comment to configure AES encrypt types for my user accounts and regenerate keytabs for my services.
I regenerated my keytabs using this command:
 ktpass -princ<EMAIL_ADDRESS>-mapuser EXAMPLE0\kafka -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass kfk_password -out C:\keytabs\kafka.ktab


new Jenkins version not released for jdk11

What feature do you want to see added?
The existing version bookworm-20240812 is not compatible with FIPS enabled runtimes and any apt-get commands fail with
Reading package lists...fatal error in libgcrypt, file ../../src/misc.c, line 92, function _gcry_fatal_error: requested algo not in md context
Fatal error: requested algo not in md context

bookworm-20240904 looking good but I do not see JDK11 Jenkins latest version with latest debian version.
~ kubectl run -i --rm --tty debug --image docker.intuit.com/debian:bookworm-20240904 -- apt-get update
If you don't see a command prompt, try pressing enter.
warning: couldn't attach to pod/debug, falling back to streaming logs: Internal error occurred: error attaching to container: container is in CONTAINER_EXITED state
Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 Packages [8787 kB]
Get:5 http://deb.debian.org/debian bookworm-updates/main amd64 Packages [2468 B]
Get:6 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages [179 kB]
Fetched 9223 kB in 1s (10.0 MB/s)
Reading package lists... Done
pod "debug" deleted

Upstream changes
No response
Are you interested in contributing this feature?
No response

Starting with the Jenkins 2.463 weekly release (and the forthcoming October LTS release), Jenkins requires Java 17 or newer. Java 11 is supported in Jenkins 2.462 and earlier weekly, 2.462.x and earlier LTS.

@basil Thanks for your reply. will you be release 2.462.x with latest debian version ?

@basil Thanks for your reply. will you be releasing 2.462.x with latest debian version ?

The upcoming 2.462.3 will have the new version yes, but only on a few weeks.


PowerShell Script to get all dashboard all reports in a single code

Hi ALL,
Is there any way wherein using Power BI Powershell cmdlets I can get all the dashboard related reports in a single line of code being a Power Bi global admin

Currently the API doesn't return back reports under a dashboard or provide a link to a dashboard from getting a report so you can't connect the two artifacts together. Adding this functionality is in the API backlog for the Power BI Service.


404 link to Custom Operator Sample (Win32 C++)

Link points to:
https://github.com/Microsoft/Windows-Machine-Learning/tree/master/Samples/CustomOperatorCPU/desktop/cpp
Actual link:
https://github.com/microsoft/Windows-Machine-Learning/tree/master/Samples/CustomOperator/desktop/cpp

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

ID: 66885f74-c161-4043-58da-3f4f3d783a8c
Version Independent ID: d73ea1e9-40cd-5efd-057b-068d176db9d5
Content: Tools and samples
Content Source: docs/windows-ml/tools-and-samples.md
Product: machine-learning
GitHub Login: @QuinnRadich
Microsoft Alias: quradic

The link works now. Closing.


[BUG] i cant see my saved flow after i enable database setting at the server/.env file.

Describe the bug
if i set the database setting, i cant see my saved flow. if i disable it i can see again. is there any way flow transferring between local to database.
To Reproduce
Steps to reproduce the behavior:

save a flow
Go to "package/server/.env"
enable the database settings.

DATABASE_TYPE=postgres
DATABASE_PORT=5432
DATABASE_HOST=localhost
DATABASE_NAME=flowise
DATABASE_USER=postgres
DATABASE_PASSWORD=***

restart flowise
See error

Expected behavior
be able to transfer local saved flow to database. or something like that.
Screenshots
If applicable, add screenshots to help explain your problem.
Flow
If applicable, add exported flow in order to help replicating the problem.
Setup

Installation [e.g. git into conda , yarn install, yarn build, yarn dev ]
Flowise Version [e.g. 1.15]
OS: [ Windows, ]
Browser [e.g. brave, chrome]

Additional context
Add any other context about the problem here.

Change your install to local. Then export the flow you have. Then change your env file. Restart flowise, and import the json file into your flow. You'll also have to setup your credentials. Hope that helps.

Hi @nerkasnimo,
The default database we used is SQLite.
When you enable database configuration, you are creating another database, which results in not being able to see your saved chatflows.


Check failed: fd != -1 (-1 vs. -1) File not found

I1229 15:43:24.557075 11704 solver.cpp:75] Solver scaffolding done.
I1229 15:43:24.561830 11704 caffe.cpp:155] Finetuning from
F1229 15:43:24.561849 11704 io.cpp:63] Check failed: fd != -1 (-1 vs. -1) File not found:
*** Check failure stack trace: ***
@     0x7fb1c18795cd  google::LogMessage::Fail()
@     0x7fb1c187b433  google::LogMessage::SendToLog()
@     0x7fb1c187915b  google::LogMessage::Flush()
@     0x7fb1c187be1e  google::LogMessageFatal::~LogMessageFatal()
@     0x7fb1c20c7e4c  caffe::ReadProtoFromBinaryFile()
@     0x7fb1c20e2f26  caffe::ReadNetParamsFromBinaryFileOrDie()
@     0x7fb1c213d03a  caffe::Net<>::CopyTrainedLayersFromBinaryProto()
@     0x7fb1c213d0de  caffe::Net<>::CopyTrainedLayersFrom()
@           0x40a869  CopyLayers()
@           0x40bcc4  train()
@           0x4077e8  main
@     0x7fb1c000f830  __libc_start_main
@           0x4080b9  _start
@              (nil)  (unknown)
Aborted (core dumped)
when i run train.sh,have this error....
everyone know how to sovle it
plz....

i sovled it .:-)

how to solve it

how to solve it

就是加入预训练模型，或者不用预训练模型，预训练模型那里设置成“ ”


Add support for typedef of Results

This is an alternative to #18
instead of assuming that everything that ends with *Result is a result we just assume it's a result if the user provided a ok or err attributes.
The general implicit wrapping of results even when the attributes isn't specified is left as is.
@SilentByte  Please give it a look

Looks good. :+1:


MINIFICPP-49 Added initial implementation of NiFi expression language

This implementation covers core language syntax such as embedding ${expressions}, referencing attributes, calling functions ${expr:toUpper()}, function arguments, quoted attribute IDs.
It has a very minimal implementation of functions (hostname() and toUpper()), and minimal integration with processor properties (PutFile directory and InvokeHTTP URL). The intent is to expand coverage and integration over future commits.
It is implemented as an extension and can be entirely disabled at compile time with no memory or compute impact in the resulting binary when compared with before this PR. The cmake code is somewhat, but not much, different than other extensions due to the API touching ProcessContext.
--
Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with MINIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x] Is your initial contribution a single, squashed commit?

For code changes:

[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[x] If applicable, have you updated the LICENSE file?
[x] If applicable, have you updated the NOTICE file?

For documentation related changes:

[x] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

Addressed review notes.

looks good to me +1

@achristianson here is conflict.

@minifirocks fixed.

@phrocker fixed.


This package is rendered superfluous by Node v10.12.0

In Node 10.12 and above there is a recursive option available to fs.mkdir which makes fs.mkdir behave as mkdir -p.

Does that include CLI as well? or is mkdir in a node env always going to supersede the linux/system command? asking for a friend.

@geotrev
mkdir is present on every POSIX system and has the  -p flag so the command line version of this command is a bit superfluous from the beginning.
The posix mkdir command also supports setting accessmodes.
I'm willing to bet that the node implementation uses the posix mkdir() function.

Node v12+ gives you the first dir made:

v13.11.0, v12.17.0 | In recursive mode, the callback now receives the first created path as an argument.

https://nodejs.org/api/fs.html#fs_fs_mkdir_path_options_callback

@lydell Yes, and I believe at some point it also fixed the broken error messages.
Nevertheless, node versions less than 12.17.0 exist, and we'll keep caring about them for a while.  npm 7 supports node 10.0.0.  It'll be quite some time before this module is superfluous, most likely a few years at least.  When it is in an environment where fs.mkdir can do everything this module needs to do, it just calls the node built-in fs.mkdir.


I can't get analytics to work

I am trying to add Umami analytics to my Quartz setup, but it's not hooking up correctly. I tried to put my IDs and URLs in different formats, with <>, without, with http, https, without... Umami is not picking it up.
I'm not tech savvy enough to properly fill-in this bug report, but I have a feeling it might be because Umami doesn't support github pages URLs like https://unapologeticaf.github.io/digital-garden/?
If so of course this is not a bug report 😅

Try using the same URL as your baseUrl.

Try using the same URL as your baseUrl.

I'm not sure what you mean, sorry :( but thanks for answering. So, here's my Quartz setup:
analytics: { provider: 'umami', host: 'unapologeticaf.github.io', websiteId: 'xxxxxxxx' }
and this is what I have in Umami:

I can't put that full URL in Umami tho, no forward slashes nor https in that textbox

Try using the same URL as your baseUrl.

I'm not sure what you mean, sorry :( but thanks for answering. So, here's my Quartz setup:
analytics: { provider: 'umami', host: 'unapologeticaf.github.io', websiteId: 'xxxxxxxx' }
and this is what I have in Umami:

I can't put that full URL in Umami tho, no forward slashes nor https in that textbox

Your URL isn't unapologeticaf.github.io. It is unapologeticaf.github.io/digital-garden

Your URL isn't unapologeticaf.github.io. It is unapologeticaf.github.io/digital-garden

I can put it into the Quartz config, but I can put it that way on Umami.. do I need a custom domain?

Your URL isn't unapologeticaf.github.io. It is unapologeticaf.github.io/digital-garden

I can put it into the Quartz config, but I can put it that way on Umami.. do I need a custom domain?

Hold on, based on the docs, shouldn't your Umami URL point to your Umami hosting? Not your Quartz site.

Hold on, based on the docs, shouldn't your Umami URL point to your Umami hosting? Not your Quartz site.

by "Umami URL" you mean the URL in the Quartz config? if I'm just using Umami from their free tier, what would my hosting be? I'm not self-hosting

host in your Quartz settings should point to where Umami sends its data. I suspect Umami gave you a link that looks something like this: *.umami.is/*

Hey Guys,
I am also facing the same issue. I am trying to add google analytics but it's not getting parsed and added to compiled HTML source code.

Hey Guys, I am also facing the same issue. I am trying to add google analytics but it's not getting parsed and added to compiled HTML source code.

Can you fix your baseUrl and try again?

I have fixed the baseUrl and added Complete URL but still it is not working.

I have fixed the baseUrl and added Complete URL but still it is not working.

That is not the correct baseUrl.
Assuming you have no custom domain and are using GitHub Pages, it should be <username>.githib.io/<project-name>.
See:

https://quartz.jzhao.xyz/hosting#github-pages
https://quartz.jzhao.xyz/configuration#:~:text=This should also include the subpath

Hold on, based on the docs, shouldn't your Umami URL point to your Umami hosting? Not your Quartz site.

by "Umami URL" you mean the URL in the Quartz config? if I'm just using Umami from their free tier, what would my hosting be? I'm not self-hosting

Hi, I believe that when you finished setting umami, umami would give a html tag like this:
<script defer src="https://cloud.umami.is/script.js" data-website-id="xxxxx"></script>

You could get this in the Tracking code, the link will be https://cloud.umami.is/settings/websites/
Then, you should set the analytics in quartz.config.ts like this:
  analytics: {
    provider: "umami",
    websiteId: "xxxxxx",
    host: "https://cloud.umami.is/script.js"
  },

The baseURL should be unapologeticaf.github.io/digital-garden.
Hope this helps.


Import of tab separated file fails halfway without any error message

When i try to import tab separated fileson my mac (mojave) i now already had several times with dbeaver 5.2.2 that it only imported half of the rows where it didnt give any message. Just tried to import almost 67k rows where little less than 35k saved in the table (enterprisedb 9.6).

Seems the import cannot handly ' in the text. where i have no quotes and /t as separator.
now failing at names like De'Rosa	and O'Connor

cannot reproduce it against 7.0.5.
if it is still actual for you - feel free to reopen the ticket


ARROW-1236: Fix lib path in pkg-config file

The CMAKE_INSTALL_LIBDIR already contains the prefix on a default
installation (such as in the conda-forge package) and therefore
prepending the prefix results in the wrong path.
While apparently it is not clear what this variable should be
(https://bugzilla.redhat.com/show_bug.cgi?id=795542), it seems that
it's used as an absolute path in the rest of the project.

@kou could you take a look?
@Zaharid would you mind creating a JIRA for the changelog and adding it to the PR title? Thank you!

Please add ":" after "ARROW-1236" like "ARROW-1236: Fix ...".

Cool, seems this worked. The JDK test failures look unrelated.

+1

Thanks!


Bump qulice to 0.18.5

For #880
I had to change a test (RqMtFakeTest.closesAllParts) because of the rule AvoidFileStream that made me to use a different implementation for some stream and thus changed some of the exception thrown.
Apart from that, it is only cosmetics.

Job #886 is now in scope, role is REV

Codecov Report

Merging #886 into master will decrease coverage by 0.27%.
The diff coverage is 51.66%.

@@             Coverage Diff              @@
##             master     #886      +/-   ##
============================================
- Coverage     75.45%   75.18%   -0.28%
+ Complexity      977      976       -1
============================================
  Files           220      220
  Lines          4717     4718       +1
  Branches        368      371       +3
============================================
- Hits           3559     3547      -12
- Misses         1003     1014      +11
- Partials        155      157       +2

Impacted Files
Coverage Δ
Complexity Δ

src/main/java/org/takes/rq/RqGreedy.java
87.5% <ø> (ø)
2 <0> (ø)
:arrow_down:

...ain/java/org/takes/facets/fallback/TkFallback.java
50% <ø> (ø)
5 <0> (ø)
:arrow_down:

src/main/java/org/takes/rq/RqChunk.java
75% <ø> (ø)
3 <0> (ø)
:arrow_down:

src/main/java/org/takes/rq/RqHeaders.java
83.92% <ø> (ø)
0 <0> (ø)
:arrow_down:

src/main/java/org/takes/rq/RqWithHeaders.java
93.33% <ø> (ø)
3 <0> (ø)
:arrow_down:

src/main/java/org/takes/facets/auth/PsByFlag.java
96.77% <ø> (ø)
13 <0> (ø)
:arrow_down:

src/main/java/org/takes/rq/RqHref.java
66.66% <ø> (ø)
0 <0> (ø)
:arrow_down:

src/main/java/org/takes/rq/RqSimple.java
66.66% <ø> (ø)
1 <0> (ø)
:arrow_down:

src/main/java/org/takes/rq/RqFake.java
95.23% <ø> (ø)
8 <0> (ø)
:arrow_down:

src/main/java/org/takes/facets/fork/TkMethods.java
80% <ø> (ø)
2 <0> (ø)
:arrow_down:

... and 59 more

Continue to review full report at Codecov.

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

@paulodamaso I didn't replace the new FileInputStream and co for fun ;)
It is caused by this PMD rule: https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidfilestream
Maybe @krzyk can tell us more about the expected fix for this rule in qulice?

@victornoel I see. Well, let's use cactoos' classes where possible then, to deal with these input and output streams

@paulodamaso can you point to me which class should be used? If we end up using classes that wrap FileInputStream and such, is that a good or bad thing for quality? I would say bad :)

@victornoel Why? I think that we should enforce and promote EO programming in takes, and officially we have cactoos with a lot of classes that do this file and input / outputstream work. Why not use them?

@paulodamaso sorry, I guess I wasn't clear. I am 100% for EO style things. The question is: do we have actual classes that properly implements File-based InputStream as explained in the PMD link there: https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidfilestream
If yes, then great, if not, it means we are just postponing solving this issue, because it means that the cactoos classes we would use are susceptible to the problems described in the PMD link.
If qulice integrated this rule, it means that it is important for quality to follow it.
Anyway, I'm ok with using any cactoos class there, I will make the change. In the end you are the one responsible as ARC, so it's good to me :P

@victornoel You are right and I agree with you. I've checked cactoos and we do not have file-based inputstream access which prevents the problems that you showed on the link. Actually we use the "wrong way" there, and as cactoos qulice version is older too, this problems does not appear in quality checks for that project.
I've already notified @llorllale in cactoos project about this (https://github.com/yegor256/cactoos/issues/891#issuecomment-446028715), but we can't use this potentially unsafe code in our project. So I'll ask you to let all these file readers and input/output streams the way you made before (so they comply with qulice checks) and please put a puzzle somewhere so we do not forget about this and can fix this once cactoos updates its libraries. How about that?

@paulodamaso I have updated the commits, thanks!

@paulodamaso wait sorry, there is some conflicts to be resolved

@paulodamaso this time it should be good :)

@victornoel Almost there, please take a look at the comment I've made before: https://github.com/yegor256/takes/pull/886/files#r240299333

@rultor merge

@rultor merge

@paulodamaso OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@paulodamaso @victornoel Oops, I failed. You can see the full log here (spent 18min)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: An Ant BuildException has occured: apply returned: 255
around Ant part ...<apply failonerror="true" executable="xcop">... @ 10:51 in /home/r/repo/target/antrun/build-main.xml
	at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:342)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
	... 20 more
Caused by: /home/r/repo/target/antrun/build-main.xml:10: apply returned: 255
	at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:643)
	at org.apache.tools.ant.taskdefs.ExecuteOn.runExec(ExecuteOn.java:410)
	at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:495)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.Task.perform(Task.java:348)
	at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
	at net.sf.antcontrib.logic.IfTask.execute(IfTask.java:197)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:154)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.Task.perform(Task.java:348)
	at org.apache.tools.ant.Target.execute(Target.java:435)
	at org.apache.tools.ant.Target.performTasks(Target.java:456)
	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
	at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
	at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:313)
	... 22 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
container 8aace8568a1d270c4bc6ca6b851cb5828ad98eafc2d09ea733a5e810b60d68ae is dead
Tue Dec 11 21:03:45 CET 2018

@paulodamaso I think my todo was properly formatted or something like that, I've pushed again

@victornoel It's still failing, please take a look

@rultor merge

@rultor merge

@paulodamaso OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@paulodamaso @victornoel Oops, I failed. You can see the full log here (spent 8min)
++ curl -K ../curl-appveyor.cfg https://ci.appveyor.com/api/projects/yegor256/takes/build/3161
+ status=running
+ '[' running == null ']'
+ '[' running == success ']'
+ '[' running == failed ']'
+ echo 'waiting for AppVeyor build 3161: running'
waiting for AppVeyor build 3161: running
+ sleep 5s
+ true
++ jq -r .build.status
++ curl -K ../curl-appveyor.cfg https://ci.appveyor.com/api/projects/yegor256/takes/build/3161
+ status=running
+ '[' running == null ']'
+ '[' running == success ']'
+ '[' running == failed ']'
+ echo 'waiting for AppVeyor build 3161: running'
waiting for AppVeyor build 3161: running
+ sleep 5s
+ true
++ jq -r .build.status
++ curl -K ../curl-appveyor.cfg https://ci.appveyor.com/api/projects/yegor256/takes/build/3161
+ status=running
+ '[' running == null ']'
+ '[' running == success ']'
+ '[' running == failed ']'
+ echo 'waiting for AppVeyor build 3161: running'
waiting for AppVeyor build 3161: running
+ sleep 5s
+ true
++ curl -K ../curl-appveyor.cfg https://ci.appveyor.com/api/projects/yegor256/takes/build/3161
++ jq -r .build.status
+ status=running
+ '[' running == null ']'
+ '[' running == success ']'
+ '[' running == failed ']'
+ echo 'waiting for AppVeyor build 3161: running'
waiting for AppVeyor build 3161: running
+ sleep 5s
+ true
++ curl -K ../curl-appveyor.cfg https://ci.appveyor.com/api/projects/yegor256/takes/build/3161
++ jq -r .build.status
+ status=running
+ '[' running == null ']'
+ '[' running == success ']'
+ '[' running == failed ']'
+ echo 'waiting for AppVeyor build 3161: running'
waiting for AppVeyor build 3161: running
+ sleep 5s
+ true
++ jq -r .build.status
++ curl -K ../curl-appveyor.cfg https://ci.appveyor.com/api/projects/yegor256/takes/build/3161
+ status=failed
+ '[' failed == null ']'
+ '[' failed == success ']'
+ '[' failed == failed ']'
+ echo 'see https://ci.appveyor.com/project/yegor256/takes/build/3161'
see https://ci.appveyor.com/project/yegor256/takes/build/3161
+ exit 1
container 0b1cb4051a95faeaa13e87d2e0ebd449d7b567ae22ca64c33599cede44127eff is dead
Tue Dec 11 21:58:53 CET 2018

@paulodamaso I'm not sure why there is a test not working in appveyor… strangely, I can't see the test being ran in the travis build.

@paulodamaso I rebased on master since there were conflicts

@rultor merge

@paulodamaso Done! FYI, the full log is here (took me 23min)

Job gh:yegor256/takes#886 is not assigned, can't get performer

The job #886 is now out of scope


[Feature] Cacher redesign

Description

Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change.

Fixes #302
Fixes #321
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[x] make test
[x] New tests implementation

Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings/errors
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been addressed and published in downstream modules
[x] There are no other PR/Issues that is blocking this PR.

Codecov Report
Patch coverage is 56.04% of modified lines.
:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the GitHub App Integration for your organization. Read more.

Files Changed
Coverage

miv/core/operator/callback.py
ø

miv/io/openephys/data.py
ø

miv/mea/base.py
0.00%

miv/mea/export.py
0.00%

miv/mea/channel_mapping.py
21.05%

miv/io/intan/data.py
44.44%

miv/core/operator/operator.py
45.45%

miv/io/openephys/binary.py
75.00%

miv/statistics/connectivity/connectivity.py
75.00%

miv/core/operator/cachable.py
83.33%

... and 14 more

:loudspeaker: Thoughts on this report? Let us know!.


Non ASCII character mimicing as space in a YAML file

In ansible-role-jenkins/tasks/plugins.yml at line 30 the last space on the line (before the two closing curly brackets) is not a "real" space character (0x20), but 0xC2A0

Nice catch! I don't know how that happened... but now it's fixed.


notifications: Add new $kubemonkeyid placeholder

:pencil: Description
Sometimes it's possible to run kube-monkey on multiple clusters
but all of them are sending notification so the same endpoint. In order
cases, we may run difference instances of kube-monkey on the same
cluster. It's useful to be able to identify the schedules and
notifications attacks and be able to correlate them with a particular
kube-monkey instance. As such, a new $id placeholder is added which
takes its value from the KUBE_MONKEY_ID env variable.
Please verify that:

[x] Code is up-to-date with the master branch.
[x] You've successfully built and run the tests locally.
[x] There are new or updated unit tests validating the change.

Hello @worldtiki do you have any further feedback on this?


Idea: Horse mount & dismount tracking

Simple idea: add the ability to enable snitch logging of players mounting & dismounting horses. Useful for players trying to prove horse theft.

Great suggestion, follows along with the minecart break tracking added a few months ago, for similar reasons.

Ty for making the issue, I'll get to it at some point

I thought the cart logging was only for breaking of carts?

Yeah it is

@jjj5311 I mention it only b/c this would be a logical "next step" to follow on the cart break tracking. Cart breaking doesn't cover horse usage or mounting/dismounting entities in general.

https://github.com/Civcraft/JukeAlert/commit/31f12b36958d1cbe74273f3151a0234d7e6f7995


Example of best practice for using multiple plugins on a model

I don't see an example for applying multiple plugins so I'm adding this as a discussion and to make sure this is actually how it should be setup since it seems quite verbose.
import { Model } from 'objection';
import * as ObjectionPassword from 'objection-password';
import * as ObjectionUnique from 'objection-unique';
import * as ObjectionVisibility from 'objection-visibility';

// Initialize mixins, and combine
const Password = ObjectionPassword();
const Unique = ObjectionUnique({
  fields: ['email'],
  identifiers: ['id']
});
const Visibility = ObjectionVisibility;
const MixinModel = Visibility(Unique(Password(Model)));

export default class User extends MixinModel {
  static tableName = 'User';

  // Blacklist properties
  static hidden = ['password'];

  // ...
}

Hi!
First of all, I'd recommend creating a common base class from which to inherit all your models. That way you only need to apply most of your plugins once. In addition to that there are couple of helpers for applying multiple plugins.
// BaseModel.js
import { Model, mixin } from 'objection';
import * as Plugin1 from 'objection-plugin1';
import * as Plugin2 from 'objection-plugin2';

export class BaseModel extends mixin(Model, [
  Plugin1,
  Plugin2({someOption: ['foo', 'bar']})
]) {
  // Add your shared stuff like hooks here.
}

// User.js
import { BaseModel } from './BaseModel';
import * as Plugin3 from 'objection-plgugin3';

export default class User extends ObjectionPassword(BaseModel) {
  static tableName = 'User';

  // Blacklist properties
  static hidden = ['password'];

  // ...
}

If you don't like this approach, there's a compose helper that let's you compose multiple plugins. With that you can do something like this.:
// plugins.js
import { compose } from 'objection';
import * as Plugin1 from 'objection-plugin1';
import * as Plugin2 from 'objection-plugin2';

const plugins = compose([
  Plugin1,
  Plugin2({someOption: ['foo', 'bar']})
]);

export plugins;
```js

```js
// User.js
import { plugins } from './plugins';
import { Model } from 'objection';
import * as Plugin3 from 'objection-plugin3';

export default class User extends ObjectionPassword(plugins(Model)) {
  static tableName = 'User';

  // Blacklist properties
  static hidden = ['password'];

  // ...
}

Of course none of this works if you use plugins that need to be configured differently for each model, but those are badly designed plugins. That kind of per-model configuration should be implemented as static fields on the model class.

I don't recommend this, but you can also avoid creating a BaseModel by doing this:
import * as objection from `objection`;
import * as Plugin1 from 'objection-plugin1';
import * as Plugin2 from 'objection-plugin2';

objection.Model = mixin(objection.Model, [
  Plugin1,
  Plugin2({someOption: ['foo', 'bar']})
]);

Thanks @koskimas that clears a lot up.  I was definitely doing this wrong since I was applying these mixins on a per model basis.  I'll definitely package the plugins up into a BaseModel and keep pushing through the docs.  Cheers

@koskimas looks like the typings for ObjectionJS are out of date.  Seem to be missing mixin and compose.  Looks like they are for v0.8.4 and the current version is v0.8.9.

I filed an issue so it is more visible - https://github.com/Vincit/objection.js/issues/536

@koskimas I suggest you edit the comment I downvoted, and replace "I don't recommend this, but you can also avoid creating a BaseModel by doing this" with "Please don't do the following, which edits the Objection Model implementation in place, but that way leads to madness:"
In some cultures (cough silicon valley cough) "don't recommend" means "eh, it might be ok, who knows."

@mceachen 😂 Some people prefer to shoot themselves in the foot with a railgun.


PBMC data

Hi,
I see that you have provided the simulation details about 13 PBMC scRNAseq data which is super helpful. Could you please share the annotations(cell types) of those scRNAseq data?
Many Thanks!

Hello, please refer to the paper: "Benchmarking single-cell RNA-sequencing protocols for cell atlas projects. Nat Biotechnol  2020;38(6):747–55". This paper's authors are responsible for sharing the data.


Overall Client SDK Requirements

Client SDK Requirements:

Should be simple to use
Should have a native look and feel to the target platform
Should look similar across different platforms
Should or could be delivered in a way that feels natural to the target platform (i.e. Unity Package, NuGet Package, Cocoa Pod, etc.).

Required features:

Authentication

SDK should have an auth method that allows you to pass the token from any authentication provider. Allows for handy starting point while building out the SDK, but also if the server adds a new auth provider then this is an escape hatch while the client SDK gets updated to support it.
SDK should allow developers to configure and handle authentication with Facebook and/or “guest player” (using whatever SDK that is available on the target platform for Facebook authentication)

Generic API

SDK should allow developers to call the other REST APIs exposed by Nether, like Leaderboard and Player Management APIs

Analytics

SDK should allow developers to send Analytics Game Events to the Analytics Building Block of Nether by hiding the fact that we query Nether API for a secure endpoint to EventHub (should include renewal of these credentials once they time out)
SDK should allow developer to send generic/custom messages by manually writing the message.
SDK should allow developers to send “known Analytics Game Event” as easy as calling a method. For example sending an event when: Game Starts, Game Ends, Heartbeat, Location, Etc.
SDK should allow developers to configure automatic sending of Heartbeat events every N seconds, meaning the developer should not have to care about that happening in the background.

Priority 2

Analytics

SDK should allow developers to automatically send Device Capabilities, meaning the SDK should query the device it’s running on of its capabilities (like: operating system, screen size, memory usage, etc.)
SDK should allow developers to configure automatic sending of location events every N seconds, meaning the SDK should automatically send the Location Event with Latitude and Longitude of the player

Authentication

SDK should allow developer to configure and handle authentication with secondary authentication provider (we’ve not yet decided on which one to pick as the secondary one)

Should there be a goal of creating some similarity across the SDKs? (obviously within the confines of keeping something that is idiomatic to the SDK platform)

And I'd add that the SDKs should have an auth method that allows you to pass the token. Firstly it's probably a handy starting point while building out the SDK, but also if the server adds a new auth provider then this is an escape hatch while the client SDK gets updated to support it :-)

@stuartleeks good comments, your suggestions are incorporated

Just to clarify my point:
Rather than:

SDK should have an auth method that allows you to pass the token from any authentication provider.

I would say

SDK should have an authentication method that allows you to pass the token received from Nether Identity services

For facebook and username/password authn we should have helpers that do the necessary interaction with Nether etc and abstract away as much as possible. They then get the Nether token and pass it to this method. By exposing the method publicly, the consumer could go through the process for a new auth type that the server supports by doing the new flow themsevles rather than having to wait for the SDK to be updated to include it.


yutani: Fix a memory leak in yutani_window_advertise_icon

strings isn't deallocated in any functions it's passed to.


[GOBBLIN-193] Handled NoSuchObjectException while checking for partition in the table in AbstractAvroToOrcConverter

Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-193

Description

[x] Here are some details about my PR, including screenshots (if applicable):
Handled any exception thrown while checking for partition in the table and returns a Optional.absent.

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:
Trivial Change

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

@abti can you review this?


Why the ID column is being removed from default columns

I saw a case that when i try to add a rows with a given ID not using the ID and the code review shows we are removing it
Why ?

Hello, thanks for trying BulkInsert! I think you're seeing that the id column is being removed from the default set of column names; this is because, by default, Rails prefers to manage the id column itself. If you want to include an explicit id, it ought to work to specify the list of column names directly, instead of relying on the default set of column names. Something like this:
MyModel.bulk_insert(MyModel.column_names, values: [array, of, rows, to, insert])

Let me know if that doesn't work for you.

Just in case someone else stumbles upon this, you want to pass in the column names like so:
MyModel.bulk_insert(*MyModel.column_names, values: [array, of, rows, to, insert])

Notice the *...


How to change language on Zeabur

I need to change language to Englisth on Zeabur Template https://zeabur.com/templates/7Q0KO3
Can you help me solve this?

Currently you will have to use the English version docker image to use the English ui.


ruby on rails

I am confused why this pull request has any sequelize changes at all. Certainly it should not be conflicting with the sequelize app or removing it.

remove these files from PR

remove these files from PR

This PR still deletes a lot of sequelize example files. My understanding is that this PR should not modify those files in any way.
Something like this may be necessary in the PR branch:
git checkout origin/master node
git commit node

remove these files from PR

This PR still deletes a lot of sequelize example files. My understanding is that this PR should not modify those files in any way.
Something like this may be necessary in the PR branch:
git checkout origin/master node
git commit node

It does indeed delete alot of sequelize files whereas it should have no relation with those files. At this point I would rather favor rejecting this PR and doing a fresh PR with only RoR related changes. @wasif-shehzad?


Added support for setting dataset permissions

We automatically deploy Tabular Models as Datasets in Power BI. In order to be able to use these Datasets from Excel we need to set Permissions on the Dataset level. This change adds support to this lovely extension for setting these permissions.

@maikvandergaag let me know if you have any questions about the change, any additional requirements or need help with testing.

Hi @yorickbouma thanks for the addition I will move it in the process will you be able to test it in the beta version. I can give you access to that one if needed.

Hi @yorickbouma thanks for the addition I will move it in the process will you be able to test it in the beta version. I can give you access to that one if needed.

Of course, just let me know how and when 😊

It is now being deployed as beta. What is your organization for azure devops that way I can openup the beta for you

BLINK-HNL

I have added the org to the beta. You can download the beta from here: https://marketplace.visualstudio.com/items?itemName=Development-vanderGaag.maikvandergaag-power-bi-actionsDev

@maikvandergaag  Functionally it works well. However, the helper window could be better:

I'll move the PrincipalType above Groups/Users input (makes more sense)
It would be nice if the Groups/Users input hides based on the selected principal type. Do you know if something like this is supported? The documentation of visibleRule is quite lacking...

Action = AddUsers || (Action = SetDatasetPermissions && PrincipalType = User)
Action = AddUsers || Action = SetDatasetPermissions && PrincipalType = User

Oke, let me know when the change is in. Regarding the visibility as far as I know you can also use && or || in the rule in not use them together in the rule.
But you could try t.

Ok lets see :) https://github.com/maikvandergaag/msft-extensions/pull/415

Merged the PR. Will let you know when it is in the Beta

fixed will not work. Received the following error will doing the deploy: Rule cannot contain both '&&' and '||' operators.

That's a shame. I see three solutions:

Create an "Identifiers" input that is visible in both cases (User/Group). Add in the information that object id's should be entered when principal type = Group and emails should be entered when principal type = User
Add two new inputs for Groups/Users, but name them slightly different (DatasetPermissionsUsers, DatasetPermissionsGroupObjectIds) and use these only for this Action. The visible rule can then just be: Action = SetDatasetPermissions && PrincipalType = User
Keep it as is was. So the Groups/Users will always both show and one of them has an unjustified asterisk

What do you think?

I would use option two

The problems keep popping up as the extension is growing to large. I have things in mind of maybe cutting the extensions up in multiple extensions and with this implemented in that way it will be easier to do.

@maikvandergaag it does not seem to trigger an update, also after uninstalling/installing I still see the previous task.json

Correct were some issues with the pull request that I have also missed. The new beta version just got published.

Taks settings works now and it is also still functionally working

Great, it is now also deploying to production


onBarCodeRead

I'm fairly new to react-native and I'm having issues with finding ways for onBarCodeRead to only read the QR code only once vs multiple times when the camera detects the QR code.  Any help would would much appreciated.

Please take reference from this issue https://github.com/lwansbrough/react-native-camera/issues/925.


Stunner - revise of RedoCommandHandler test coverage

Hi @romartin,
I revised RedoCommandHandler test coverage and wrote addition tests for uncovered branches and mutations. Also I did minor cleanup and refactoring like remove null check because dequeue.peek() will never return null for not empty queue.
If this PR is OK to you, I will revise the rest of tests in the same manner.

Thank you @romartin, good points! Fixed.


[Feature]: Improve the UX with datasources when editing an API

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
When I'm on the API editor page, list of datasources and connections are shown on right.
It's not clear what I need to do with these two lists. If I click on a datasource from the list, a green label appears saying "In use". It also changes the base URL I was working on and there is no way to undo this.
Here are couple of things that can be improved.

Do not show connections for API's.
Save as Datasource button beside the URL input field can be displayed on top of the datasources shown on right.
When user clicks on a datasource, rather than instantly adding the API to that datasource we can show a second form where user should be informed about the changes that's going to happen.
There should be a link to a documentation on "What is a datasource" so that user can get more context if they want

Why should this be worked on?
This will make the UI more user friendly.

@nayan-rafiq thanks for the inputs!

@nayan-rafiq thanks for the feedback, and while I agree the information that is shown in the right pane is confusing and vague. However, if I select one of the other datasources and like you said the base url gets changed, I can still hit cmd+z to undo this operation. Was this not apparent enough to you?
that vague pane itself: we will work on it


When using IHttpActionResult along SwaggerResponse there's no way to not include a 200 response

Example:
  [SwaggerResponse(HttpStatusCode.Created, "Returns the created comment.", typeof (FindierResponse<DtoComment>))]
        public async Task<IHttpActionResult> PostComment([FromUri] string id, [FromBody] CommentBindingModel model)

generates the following:
{
   200:{
      description:"OK",
      schema:{
         $ref:"#/definitions/Object"
      }
   },
   201:{
      description:"Returns the created comment.",
      schema:{
         $ref:"#/definitions/FindierResponse[DtoComment]"
      }
   }
}

Seems that the fix for this is to include the following attribute:
[SwaggerResponseRemoveDefaults]


feat: configureConsole function for configuring log prefixing and stderr

Adds a new configureConsole method to fastly:logging to enable configuration of the console logging for removing prefixing and supporting stderr output.
In future, it might be nice to support routing console logs to logging endpoints here as well, but that is out of scope for this initial PR.

Resolves https://github.com/fastly/js-compute-runtime/issues/1063.


move profiles to /~username/

This makes way for Teams to be at /team/. I cherry-picked these out of #3400, which has grown out of control.

This is ready for review/merge, @rohitpaulk @techtonik et al.

Hrm. This leaves all old profile links 404, because I implemented the redirects further on in #3400, once I had implemented a Team entity.


Opearator handler shows connection rest by peer or sometimes just hangs and doesn't respond

Expected Behavior
The pod should respond immediately
Actual Behavior

When operator pod is long standing, and if we send and create request for custom resource it just hangs and doesn't respond, we have to restart pod then it comes back alive

Connection reset by peer in middle of creating resources

Steps to Reproduce the Problem

Create an operator pod and keep it long running for few days
try to create custom resource it doesn't go through

Note (sometimes it gives connection reset by peer)
Specifications

Platform: Ubuntu 16.04
Kubernetes version: (use kubectl version) 1.15
Python version: (use python --version) 3.5.2
Python packages installed: (use pip freeze --all)

connection reset by peer traceback
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/kopf/reactor/handling.py", line 387, in _execute
lifecycle=lifecycle,  # just a default for the sub-handlers, not used directly.
File "/usr/local/lib/python3.7/site-packages/kopf/reactor/handling.py", line 478, in _call_handler
**kwargs,
File "/usr/local/lib/python3.7/site-packages/kopf/reactor/invocation.py", line 79, in invoke
result = await loop.run_in_executor(config.WorkersConfig.get_syn_executor(), real_fn)
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/handlers.py", line 159, in create_fn
obj = v1_client.create_namespaced_service(namespace, SVC_NOSELECTOR_TEMPLATE)
File "/usr/local/lib/python3.7/site-packages/kubernetes/client/apis/core_v1_api.py", line 6934, in create_namespaced_service
(data) = self.create_namespaced_service_with_http_info(namespace, body, **kwargs)
File "/usr/local/lib/python3.7/site-packages/kubernetes/client/apis/core_v1_api.py", line 7025, in create_namespaced_service_with_http_info
collection_formats=collection_formats)
File "/usr/local/lib/python3.7/site-packages/kubernetes/client/api_client.py", line 334, in call_api
_return_http_data_only, collection_formats, _preload_content, _request_timeout)
File "/usr/local/lib/python3.7/site-packages/kubernetes/client/api_client.py", line 168, in __call_api
_request_timeout=_request_timeout)
File "/usr/local/lib/python3.7/site-packages/kubernetes/client/api_client.py", line 377, in request
body=body)
File "/usr/local/lib/python3.7/site-packages/kubernetes/client/rest.py", line 266, in POST
body=body)
File "/usr/local/lib/python3.7/site-packages/kubernetes/client/rest.py", line 166, in request
headers=headers)
File "/usr/local/lib/python3.7/site-packages/urllib3/request.py", line 72, in request
**urlopen_kw)
File "/usr/local/lib/python3.7/site-packages/urllib3/request.py", line 150, in request_encode_body
return self.urlopen(method, url, **extra_kw)
File "/usr/local/lib/python3.7/site-packages/urllib3/poolmanager.py", line 326, in urlopen
response = conn.urlopen(method, u.request_uri, **kw)
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 641, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 368, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/usr/local/lib/python3.7/site-packages/urllib3/packages/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 603, in urlopen
chunked=chunked)
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 344, in _make_request
self._validate_conn(conn)
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 843, in validate_conn
conn.connect()
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 370, in connect
ssl_context=context)
File "/usr/local/lib/python3.7/site-packages/urllib3/util/ssl.py", line 368, in ssl_wrap_socket
return context.wrap_socket(sock)
File "/usr/local/lib/python3.7/ssl.py", line 423, in wrap_socket
session=session
File "/usr/local/lib/python3.7/ssl.py", line 870, in _create
self.do_handshake()
File "/usr/local/lib/python3.7/ssl.py", line 1139, in do_handshake
self._sslobj.do_handshake()
urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

@amolkavitkar  Sorry for the delayed answer.
First of all, I see Python 3.5.2 mentioned. Kopf uses some features of Python 3.7, which did not exist earlier (such as contextvars, but also few more) — so, in theory, it cannot run on 3.5.2 (I didn't try though). Are you sure this is the right version of Python?
Second, can you please provide the Kopf version used, and a sample code with this issue reproduced (with the proprietary and unnecessary code removed)? Without the code, it is unclear what is happening and why, and what can cause the problems. In the stack trace, I see that you call the kubernetes client library with create_namespaced_service(), but this seems like an issue in that client library rather than in Kopf itself. Or, to be more specific, in the low-level SSL/HTTPS sub-libraries used by kubernetes client library.
Third, it is worth mentioning that the API requests for creation of the custom resources are, to my knowledge, non-blocking — i.e. k8s creates the resources and finishes the API request, and starts the handling in the operators after that — i.e., the operators cannot block the resource creation. If it is blocked, it is for some other reason (an assumption).
Also, some information on the scale of operator & cluster would be helpful to reproduce it: how many handled resources do you have (just the order of magnitude: 1s, 10s, 100s, 1000s?) And how often do they change (times per second/minute/hour, also a rough approximation)? High-scale operators can have their own issues with connection- & thread-pools, which has to be taken into account.
I would appreciate if this information is provided here in the issue, so that I could reproduce it or guess what happens internally.

One of the mentioned effects or the one that looks like it —operators not exiting properly— is known for some time, well-described in #152, and is going to be fixed with asyncio/aiohttp for all HTTPS operations (drafted in #176). This happens with any sync HTTPS client libraries inside of the async app, so there is no good way to solve it now. The proper aiohttp way requires few hops to implement prerequisite changes as separate PRs (in focus right now). Currently, it is "kind-of-solved" by Kubernetes using SIGKILL on the pod after it does not exit properly with SIGTERM.

We've also been having the same problem with our deployments, using kopf v0.20, although we are not experiencing any exceptions or dropped connections. In our case the pod simply stops receiving updates from the kubernetes API: Nothing is sent from the kubernetes API when a custom resource is created, or updated; and no additional logs are printed in the logs.
Upon further investigation we've discovered that the connection between the kubernetes API and the operator is still in the still 'ESTABLISHED' state and there are no clear issues in the logs which would suggest that the API and operator can no longer communicate, however there is no longer any any data being exchanged on the connection as the octets sent and received by the kopf process remains steady (according to /proc/1/net/netstat).
I'd like to get you some sample code so you can investigate this further. However since we need this working ASAP, I've developed a liveness check based on my investigations which checks to ensure that there is some kind of communication occurring between the API and operator:
liveness-probe.sh -- To be added to the operator container
#! /bin/sh

# Files storing previous data values for comparison
# You may want to change these file depending on frequency of /tmp deletion and frequency of liveness poll probing
LAST_DATA_FILE=/tmp/last_data
LAST_TIME_FILE=/tmp/last_time

# Process ID of kopf within container PID namespace (probably 1)
PID=1

get_data() {
        CURRENT_DATA=`cat /proc/$PID/net/netstat | grep 'IpExt' | tail -n 1 | cut -d ' ' -f8`
}

record_data() {
        echo $CURRENT_DATA > $LAST_DATA_FILE
}

record_time() {
	date > $LAST_TIME_FILE
}

get_data

if [ ! -e $LAST_DATA_FILE ]; then
        record_data
	record_time
        exit 0
fi

LAST_DATA=`cat $LAST_DATA_FILE`
LAST_TIME=`cat $LAST_TIME_FILE`

# provide some output for display in pod events
echo "previous = $LAST_DATA, current = $CURRENT_DATA, last received time = $LAST_TIME"

if [ ! $CURRENT_DATA -gt $LAST_DATA ]; then
	# implies it is equal, not neccessary to record data...
        record_data
        exit 1
fi

record_data
record_time

# exit explicitly
exit 0

snippet of liveness probe
        livenessProbe:
          exec:
            command:
              - /bin/sh
              - /srv/liveness-probe.sh
          initialDelaySeconds: 60
          periodSeconds: 60
          failureThreshold: 4
          successThreshold: 1
          timeoutSeconds: 1

The code works well with the python:3.7 docker image which we're using. If you're not using that you'll need to make sure you have coreutils and grep are installed at the least.
These liveness probe values also work well for us but can mean there are 'unhealthy' events in the operator as the period is less than the frequency of communication I've seen in between the operator and the API. The period can be bumped to 4 minutes and the failure threshold reduced to 1 to clean up your events as well.

I also observed this strange behaviour once (accidentally) — when the operator didn't see the custom resource created. Surprisingly, it saw other resources and reacted to them. But I couldn't catch and reproduce this situation after the restart.
Meanwhile, there is a new pre-release: kopf==0.23rc1 (0.23 will be released in couple days if the live testing goes well).
Among many other changes, this version fully switches Kopf to asyncio/aiohttp. Previously, there were synchronous pykube-ng -> requests -> urllib3 -> socket calls, which are now completely gone. And they already caused issues with the sync socket reads being stuck at exit (see #152).
It is highly probable that the issue will not reappear, since the whole I/O machinery is now changed. I'll be looking for this case more carefully. Please, do so too, and report if it does reappear. I will keep this issue open for few weeks, but then will close it if everything goes smooth.

Also —though not directly related to the reported issue— there is now a liveness endpoint possible with kopf run --liveness http://:8080/healthz, with optional @kopf.on.probe() handlers to collect the data for reporting as a response to the liveness probe. See the health-checks documentation. Maybe that will be useful for you.

@nolar We experience something very similar with latest kopf release still (minus connection reset by peer part):
after leaving the controller for some time (like overnight) it stops handling changes of resources it watches - there's complete quietness in handlers logs, kopf annotation in the resource is not updated.
We've enabled liveness probes too, they are constantly passing (per logs and no container restarts), but resource handling is just not happening, controller seem to not receive updates from K8s.
Only controller restart helps.
Platform: Ubuntu 18.04
Kubernetes: 1.14 / Docker Enterprise
Python: 3.7.5
Python libs (relevant ones): kopf 0.25, aiohttp 3.6.2
After some netstatting and tcpdumping it seems that TCP connection is there, but the HTTP one is gone, but controller does not notice.
May be a manifestation of https://github.com/kubernetes/kubernetes/issues/42552
Current suspect is that timeout=aiohttp.ClientTimeout(total=None) arg passed to GET ..?watch=true request here:
https://github.com/zalando-incubator/kopf/blob/51a3a70e09a17cf3baec2946b64b125a90595cf4/kopf/clients/watching.py#L204
While I understand why it may be preferable to do so for such watch requests, it seems that (bad?) networking conditions / blips can cause such hangups when no strict timeout is set.
Our preliminary testing shows that setting some specific timeout in this place does not stop normal controller operations, but in case of lost connection controller crashes and is restarted by K8s, usually alleviating the problem.
I'll push a PR to make this timeout configurable (with default behaviour preserved as current one).

I too saw a connection reset by peer today, which caused the thread to hang. Here was the output:
Root task 'poster of events' is failed: [Errno 104] Connection reset by peer
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/kopf/reactor/running.py", line 453, in _root_task_checker
    await coro
  File "/usr/local/lib/python3.8/dist-packages/kopf/engines/posting.py", line 165, in poster
    await events.post_event(
  File "/usr/local/lib/python3.8/dist-packages/kopf/clients/auth.py", line 45, in wrapper
    return await fn(*args, **kwargs, context=context)
  File "/usr/local/lib/python3.8/dist-packages/kopf/clients/events.py", line 77, in post_event
    response = await context.session.post(
  File "/usr/local/lib/python3.8/dist-packages/aiohttp/client.py", line 504, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.8/dist-packages/aiohttp/client_reqrep.py", line 847, in start
    message, payload = await self._protocol.read()  # type: ignore  # noqa
  File "/usr/local/lib/python3.8/dist-packages/aiohttp/streams.py", line 591, in read
    await self._waiter
aiohttp.client_exceptions.ClientOSError: [Errno 104] Connection reset by peer
Root task 'daemon killer' is finished unexpectedly.
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.8/dist-packages/nhd/TriadController.py", line 134, in TriadControllerLoop
    loop.run_until_complete(kopf.operator(
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/usr/local/lib/python3.8/dist-packages/kopf/reactor/running.py", line 161, in operator
    await run_tasks(operator_tasks, ignored=existing_tasks)
  File "/usr/local/lib/python3.8/dist-packages/kopf/reactor/running.py", line 370, in run_tasks
    await _reraise(root_done | root_cancelled | hung_done | hung_cancelled)
  File "/usr/local/lib/python3.8/dist-packages/kopf/reactor/running.py", line 437, in _reraise
    task.result()  # can raise the regular (non-cancellation) exceptions.
  File "/usr/local/lib/python3.8/dist-packages/kopf/reactor/running.py", line 453, in _root_task_checker
    await coro
  File "/usr/local/lib/python3.8/dist-packages/kopf/engines/posting.py", line 165, in poster
    await events.post_event(
  File "/usr/local/lib/python3.8/dist-packages/kopf/clients/auth.py", line 45, in wrapper
    return await fn(*args, **kwargs, context=context)
  File "/usr/local/lib/python3.8/dist-packages/kopf/clients/events.py", line 77, in post_event
    response = await context.session.post(
  File "/usr/local/lib/python3.8/dist-packages/aiohttp/client.py", line 504, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.8/dist-packages/aiohttp/client_reqrep.py", line 847, in start
    message, payload = await self._protocol.read()  # type: ignore  # noqa
  File "/usr/local/lib/python3.8/dist-packages/aiohttp/streams.py", line 591, in read
    await self._waiter
aiohttp.client_exceptions.ClientOSError: [Errno 104] Connection reset by peer


[Feature Request]: Add ability to reset dictionary to default

Contact Details
No response
Description
The class should be able to reset the dictionary to the default value if it has been changed.
const encoder = new AlphanumericEncoder()
console.log(encoder.dictionary) // 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
encoder.dictionary = 'ABCD'
console.log(encoder.dictionary) // 'ABCD'
encoder.resetDefaultDictionary()
console.log(encoder.dictionary) // 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

This should also aid in modularity. The class should have an internal property that tracks the default dictionary and a separate parameter that tracks the dictionary in use. Then in the constructor, this function can be called.
The user can then set the dictionary to anything desired and easily reset it.
Are you able/willing to make the change? (It's ok if you're not!)
Yes
Code of Conduct

[X] I agree to follow this project's Code of Conduct

:tada: This issue has been resolved in version 1.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Provide info on layers as attribute in ImageContainer

Type of the feature

[x] New function in sqduipy.im?
[ ] New function in squidpy.gr?
[ ] New function in squidpy.pl?
[ ] Change an existing functionality, such as default behavior?
[ ] Other?

Description
Maybe some missunderstanding on my side, but it would be nice to provide the layers info as attribute:
Currently, I am getting this info via: list(img.data.keys())

it's an interesting feature, is it doable to add in #329 @hspitzer if not supported?

Yes, this is certainly doable! I'd prefer to do this in a separate PR, the z-stacks one is already shaping up to be another monster PR. Adding sth like img.layers or img.layer_names does not interfere at all with the z-stacks changes.

@MxMstrmn list(img) should return you the layer.

Closing this, as you can do list(img) to get the layer names. I'll also document that in the updated ImageContainer tutorial.


fix: yarn start:dev app crashed

Description
lgWorker fork process re-exec nodemon run arguments --inspect=9228 , which caused an app crashed error

Fix this by reset forked process execArgv: [], but not sure it's the best solution or not.

Task Item
#minor

Screenshots

Coverage remained the same at 53.277% when pulling 0741e259c4e75b5f6dbe9322071979441251570a on zhixzhan/lgworker-fix into 67816d432f982eb535c6270964fef74cff4f450f on master.


Separated the getIndexedModifiedLines function to its own module

Current dependencies on/for this PR:

main

PR #403

PR #404

PR #405

PR #406

PR #407

PR #408

PR #409   👈

This comment was auto-generated by Graphite.

Current dependencies on/for this PR:

main

PR #403

PR #404

PR #405

PR #406

PR #407

PR #408

PR #409   👈

This comment was auto-generated by Graphite.


Scrollbar not appearing on Parent div.

I don't know if its a bug or I am not finding the way to do it.
I am using material Dialog and inside the body of material Dialog, I have a div. Inside that I have another div which I want to drag.
When I drag the inner div, I want to have a scrollbar to appear on its parent.
Here is my code:

          <Draggable
            bounds={{
              left: 0,
              top: 0,
              right: 300,
              bottom: 150
            }}
          >

Contact Name

                <PhoneIcon className="contact-detail-icon" />
                Mobile No

                <EmailIcon className="contact-detail-icon" />
                Email

                <LocationIcon className="contact-detail-icon contact-location-icon" />

 Address Line 1

                   Address Line 2

          </Draggable>

Here is how my output looks like:

After drag:

This isn't an issue with the library but the CSS of your popup. You should have a set width and height of your print area div. Even if your popup is only 300px wide you can set your cover-print-area-settings-content to be as large as you like and set overflow: auto; which will add the scrollbar.
Try something like this in your CSS...
.cover-print-area-settings-content {
    height: 600px; // adjust to whatever you like
    width: 600px; // adjust to whatever you like
    overflow: auto;
}

@CWSites  Sorry to say that you are misunderstanding me. I want the .cover-print-area-settings-content to be variable height and width. I mean when I drag my card to the right edge, the width of the .cover-print-area-settings-content should increase resulting in a horizontal scrollbar. Similarly with vertical scrollbar.

@Vishal1419 can you create a codepen or something as a sample so I can help?

@CWSites  Sorry for the above comment, but somehow I got scrollbars. Thanks for help.

For me this was happening because i have not imported CSS file
import 'react-grid-layout/css/styles.css';


PDF JIS Z 8301: 2nd ToC page header

Source issue: https://github.com/metanorma/metanorma-jis/issues/9
Original PDF contains ToC title at the end of the header:

Generated PDF:

I've added
<fo:block><fo:marker marker-class-name="section_heading">Test</fo:marker></fo:block>

into <fo:flow
and
<fo:retrieve-marker retrieve-class-name="section_heading" retrieve-position="first-including-carryover" retrieve-boundary="page-sequence"/>

in <fo:static-content flow-name="header-even" role="artifact">.
The IF generation causes the error
java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at org.apache.fop.render.intermediate.IFStructureTreeBuilder.replayEventsForPageSequence(IFStructureTreeBuilder.java:192)
at org.apache.fop.render.intermediate.IFSerializer.startPageSequence(IFSerializer.java:278)

Without IF generation, PDF renders ok.
Looks like it's Apache FOP bug. I'll investigate which workaround solution should be applied.

Done.
First ToC page - without the section title after docidentifier:

2nd ToC page - with the section title after docidentifier::


[fix] Make sqlalchemy 1.1 and 1.2 behave the same. fix #2058

Motivation for changes:
SQLAlchemy update to 1.2.0 breaks some stuff for us
Detailed changes:
This change in sqlalchemy 1.2 broke our custom comparators for hybrid properties we were using. Since calling 'comparator' method on hybrid properties no longer mutates the property, we have to re-assign the result back to the property name.
Replaces #2119, fixing the issue at the root.
Addressed issues:

Fixes #2058

Codacy, I think you on crack. Nothing is shadowed here, we define a (settable) property, then set that property in __init__.


Passing path in options throws Error: connect ENOENT

Trying to connect to a redis instance using path param in options fails with ENOENT error, while initializing ioredis with path works.
import Redis from 'ioredis';

new Redis('redis://<IP_ADDRESS>:6379') // Works

new Redis({ path: 'redis://<IP_ADDRESS>:6379' })  // Error: connect ENOENT

Can I work on this?

@deepam-kapur you can as far as I'm concerned. But I'm not really a maintainer.

path needs to be passed with a unix socket so should look like a file path.

@luin providing a socket instead of url would only work for localhost connections, which I only used here as an example.

I have this problem, too. How are we supposed to initialize with a url?


Setup Protected Audience multi-seller skeleton

Description
This PR adds the skeleton code of the participants needed to setup a Protected Audience auction. PRs have been broken up to make the implementation code easier to review.
The following participants have been added:

DSP-A
DSP-B
SSP-A
SSP-B
AD-SERVER

The majority of the PR is copy-pasting an existing service, and updating the name inside (example: updating "DSP" to "DSP-A"). I also ran prettier which linted some existing files.
Implementation PR: https://github.com/privacysandbox/privacy-sandbox-demos/pull/241

@kevinkiklee please follow our process :

PR to dev branch -> peer review
merge to dev -> test on dev environment
release dev -> main


It is a Fabric mod and will not work on a vanilla Minecraft Realms

i use plenty of fabric mods on my realm just this one isn't working ?
It is a Fabric mod and will not work on a vanilla Minecraft Realms

Originally posted by @kwpugh in https://github.com/kwpugh/emerald_tools_fabric/issues/58#issuecomment-2381624294

do you have fabric api installed on the the realm server?   I guess you are using client side mods.  MY mods are both client and server side mods.   Did you install the mod on the realm server?


Problem with File uploading while using Fetch or XHR

Please provide all the information requested. Issues that do not follow this format are likely to stall.
Description
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = () => {
        console.log(xhr.readyState);
    };

    xhr.open("POST", config.BaseURL + 'Profile/EditProfile');
    xhr.responseType = 'json';
    xhr.setRequestHeader("Content-Type", 'multipart/form-data');
    xhr.setRequestHeader("Authorization", Token);

    xhr.upload.onprogress = function(event) {
        console.log(`Uploaded ${event.loaded} of ${event.total} bytes`);
    };

    xhr.upload.loadstart = function(event) {
        console.log(event);
    };

    xhr.onerror = function(err) {
       console.log(err);
       reject(err);
    };

    xhr.onload = async function() {
        console.log(this.status);
    };
    xhr.send(formData);

When I try to upload a file using the code above where my formData is
    formData.append('Name', Name);
    formData.append('Email', Email);
    formData.append('About', About);
    formData.append('File', {uri: "ImagePath", name: "name.jpeg", type: "image/jpg"});
    formData.append('Address', Address);
    formData.append('City', City.value);
    formData.append('PinCode', PinCode);

React Native shows nothing in my console even not showing anything about load start or status change.
Even there is no log in my server about any request.
I tried the same using Fetch API but there also it's the same case, Every other API works perfectly but the issue comes when I have a file to upload, Before updating React Native It was working perfectly but then now it's not working.
React Native version:
System:
OS: macOS 10.15.5
CPU: (4) x64 Intel(R) Core(TM) i5-5350U CPU @ 1.80GHz
Memory: 101.85 MB / 8.00 GB
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 10.16.0 - /usr/local/bin/node
Yarn: Not Found
npm: 6.14.6 - /usr/local/bin/npm
Watchman: Not Found
Managers:
CocoaPods: 1.9.3 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
Android SDK: Not Found
IDEs:
Android Studio: 4.0 AI-193.69<IP_ADDRESS>26763
Xcode: 11.3.1/11C504 - /usr/bin/xcodebuild
Languages:
Java: 11.0.2 - /usr/bin/javac
Python: 2.7.16 - /usr/bin/python
npmPackages:
@react-native-community/cli: Not Found
react: ^16.13.1 => 16.13.1
react-native: ^0.63.1 => 0.63.1
npmGlobalPackages:
react-native: Not Found
Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.

When Uploading any file using multipart Either using Fetch or XHR call

Expected Results
It should work as it was working perfectly before
Snack, code example, screenshot, or link to a repository:

This is likely caused by the Flipper plugin. Commenting the line 43 at android/app/src/debug/java/com/.../ReactNativeFlipper.java and building your app again might resolve the issue.
new NetworkingModule.CustomClientBuilder() {
  @Override
    public void apply(OkHttpClient.Builder builder) {
      // builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
    }
});

Hello @vikasg603 thanks for the issue. We are tracking this here: https://github.com/facebook/react-native/issues/28551 closing as a duplicate.

I don't think it's duplicate as The issue which you have mentioned is for Android only and was happened with me too.
It got resolved when i updated flipper.
Also previously it was showing something like stream error.
But now there is no success or failure from fetch or even XHR.
This issue came when i updated React native from .62 to .63

Problem resolved It was rather Image Crop Picker issue,
The issue was I was using iOS simulator and was passing image path without file:///
Resolved using
Platform.OS === 'ios' ?  "file:///" + response.path : response.path


Fix sample identify info not appearing when app is startup with invalid/non-existent save data

Fixed in #141

Fixed in #141


Cannot read or write: GetFluxStatus: No Index

Installed all software without any problems on Pop OS 22.04 LTS, attached an Amiga drive with a straight cable, attached power cable (both correctly oriented), drive has jumper on D0 (D1 and D2 are not bridged), successfully upgraded as directed, and gw info says:
Host Tools: 1.15.1
Device:
  Port:     /dev/ttyACM0
  Model:    Greaseweazle V4
  MCU:      AT32F403A, 216MHz, 96kB SRAM
  Firmware: 1.4
  Serial:   GWB0B563A85976C01007B41705
  USB Rate: Full Speed (12 Mbit/s)

Board shows a non-blinking red status LED. gw read --drive 0 image.adf says:
Reading c=0-79:h=0-1 revs=1.1
Format amiga.amigados
Command Failed: GetFluxStatus: No Index

While trying to read, another LED comes on as green. Drive does not show any sign of life.
Tried --drive=a and b, and 1 and 2 for good measure. Nothing, always the same issue. Tried different drive, other flat cables, etc...
Read all documentation, Readit posts, forum posts, etc..., but non seems to cover this particular issue that driver --drive=? settings don't resolve the issue.
Please advice on steps how to resolve this issue.

Some original full height Amiga drives need 12v power. Greaseweazle supplies only 5v power. You will need a separate power supply for the drive. Eg molex PSU and molex to floppy tail.

Ok, understood. Will power the drive from the Amiga and retry. Thanks.


doc: CAN: Add CAN related changes to the 2.1 release notes

Add notes about CAN related changes for this release.

Needs rebase @alexanderwachter


clarification needed on cases when users won't get signed out

On the bullet point "Users won't get signed out in these cases", the third item is ambiguous. "if they're on a managed device (one that is compliant or joined to a domain) and using a supported browser like Microsoft Edge or Google Chrome (with the Windows Accounts extension.)
it isn't clear if "(with the Windows Accounts extension)" applies only to Google Chrome, or if it applies to both Microsoft Edge and Google Chrome.

@JohnInAtlanta Thank you for your feedback. It applies to Microsoft edge irrespective of the extension. However,for google chrome it applies only with the Windows Accounts extension
Hope this helps!
Thanks
Sri

@msbemba Thank you very much for the contribution and sharing this explanation. @JohnInAtlanta Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Fix email validation: must include at least 2 domain label

Codecov Report
Base: 74.23% // Head: 74.23% // No change to project coverage :thumbsup:

Coverage data is based on head (4da5c1e) compared to base (f20a7a7).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #217   +/-   ##
=========================================
  Coverage     74.23%   74.23%
  Complexity      664      664
=========================================
  Files           100      100
  Lines          2014     2014
  Branches        221      221
=========================================
  Hits           1495     1495
  Misses          444      444
  Partials         75       75

Impacted Files
Coverage Δ

...rc/main/java/seedu/phu/model/internship/Email.java
80.00% <ø> (ø)

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

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