[Bug] Restic Snapshot Webhooks are not sent if no RWX PVCs are mounted in wrestic

Describe the bug
When a namespace has a PreBackupPod specified but no RWX PVCs, wrestic will correctly backup the data from the PreBackupPod, but will fail to find its BACKUP_DIR. This results in the snapshot list webhook ( https://github.com/vshn/wrestic/blob/2e94e2ba7115ea44dd739e610988dbfa2b6b3c06/restic/cli/backup.go#L44-L45 ) never firing, which is not intended
Additional context
Our backup system built on top of k8up requires a snapshot webhook be delivered any time the restic repo changes in order to ensure our system is in sync with the upstream restic repo.
Logs
This is a log from a project which has a PreBackupPod and no RWX PVCs. The log is from wrestic version 0.3.1, but the issue occurs with 0.3.2 as well:
I0914 20:25:32.023355       1 main.go:43] wrestic "level"=0 "msg"="Wrestic Version: v0.3.1-dirty"
I0914 20:25:32.023719       1 main.go:44] wrestic "level"=0 "msg"="Operator Build Date: Thu May 27 13:37:01 UTC 2021"
I0914 20:25:32.023746       1 main.go:45] wrestic "level"=0 "msg"="Go Version: go1.16.4"
I0914 20:25:32.023756       1 main.go:46] wrestic "level"=0 "msg"="Go OS/Arch: linux/amd64"
I0914 20:25:32.023765       1 main.go:208] wrestic "level"=0 "msg"="setting up a signal handler"
I0914 20:25:32.023893       1 command.go:57] wrestic/RepoInit/command "level"=0 "msg"="restic command"  "args"=["init"] "path"="/usr/local/bin/restic"
I0914 20:25:32.023927       1 command.go:83] wrestic/RepoInit/command "level"=0 "msg"="Defining RESTIC_PROGRESS_FPS"  "frequency"=0.016666666666666666
I0914 20:25:37.181741       1 snapshots.go:39] wrestic/snapshots "level"=0 "msg"="getting list of snapshots"
I0914 20:25:37.181783       1 command.go:57] wrestic/snapshots/command "level"=0 "msg"="restic command"  "args"=["snapshots","--json"] "path"="/usr/local/bin/restic"
I0914 20:25:37.181810       1 command.go:83] wrestic/snapshots/command "level"=0 "msg"="Defining RESTIC_PROGRESS_FPS"  "frequency"=0.016666666666666666
I0914 20:25:38.759449       1 pod_list.go:50] wrestic/k8sClient "level"=0 "msg"="listing all pods"  "annotation"="k8up.syn.tools/backupcommand" "namespace"="<namespace>"
I0914 20:25:38.783903       1 pod_list.go:80] wrestic/k8sClient "level"=0 "msg"="adding to backup list"  "namespace"="<namespace>" "pod"="mariadb-prebackuppod-64bf79f58d-z5svd"
I0914 20:25:38.785063       1 pod_exec.go:45] wrestic/k8sExec "level"=0 "msg"="executing command"  "command"="/bin/sh, -c, dump=$(mktemp) \u0026\u0026 mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --no-data -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE \u003e $dump \u0026\u0026 mysqldump --max-allowed-packet=500M --events --routines --quick --add-locks --no-autocommit --single-transaction --no-create-db --ignore-table=$BACKUP_DB_DATABASE.watchdog --no-create-info -h $BACKUP_DB_HOST -u $BACKUP_DB_USERNAME -p$BACKUP_DB_PASSWORD $BACKUP_DB_DATABASE \u003e\u003e $dump \u0026\u0026 cat $dump \u0026\u0026 rm $dump" "namespace"="<namespace>" "pod"="mariadb-prebackuppod-64bf79f58d-z5svd"
I0914 20:25:38.785298       1 stdinbackup.go:16] wrestic/stdinBackup "level"=0 "msg"="starting stdin backup"  "extension"=".mariadb.sql" "filename"="/<namespace>-mariadb-prebackuppod"
I0914 20:25:38.785357       1 command.go:57] wrestic/stdinBackup/command "level"=0 "msg"="restic command"  "args"=["backup","--stdin","--stdin-filename","/<namespace>-mariadb-prebackuppod.mariadb.sql","--host","<namespace>","--json"] "path"="/usr/local/bin/restic"
I0914 20:25:38.785382       1 command.go:83] wrestic/stdinBackup/command "level"=0 "msg"="Defining RESTIC_PROGRESS_FPS"  "frequency"=0.016666666666666666
E0914 20:25:38.937509       1 logging.go:122] wrestic/mariadb-prebackuppod-64bf79f58d-z5svd "msg"="mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces" "error"="error during command"
E0914 20:25:39.031223       1 logging.go:122] wrestic/mariadb-prebackuppod-64bf79f58d-z5svd "msg"="mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces" "error"="error during command"
I0914 20:25:40.598306       1 logging.go:160] wrestic/stdinBackup/progress "level"=0 "msg"="backup finished"  "changed files"=1 "errors"=0 "new files"=0
I0914 20:25:40.598354       1 logging.go:161] wrestic/stdinBackup/progress "level"=0 "msg"="stats"  "bytes added"=7923945 "bytes processed"=34000976 "time"=1.028872885
E0914 20:25:40.598389       1 stats.go:206] wrestic/MountCollector "msg"="can't list mounted folders for stats" "error"="open /data: no such file or directory"
I0914 20:25:40.598406       1 handler.go:68] wrestic/statsHandler/webhookStats "level"=0 "msg"="sending webhooks"  "url"="https://webhook.site/d118d455-33b8-4049-81f2-6f5a3c58103a"
I0914 20:25:42.079119       1 handler.go:44] wrestic/statsHandler/promStats "level"=0 "msg"="sending prometheus stats"  "url"="http://platform-prometheus-pushgateway.monitoring.svc:9091"
I0914 20:25:42.093687       1 main.go:153] wrestic "level"=0 "msg"="backups of annotated jobs have finished successfully"
I0914 20:25:42.093719       1 backup.go:21] wrestic/backup "level"=0 "msg"="starting backup"
I0914 20:25:42.093736       1 backup.go:24] wrestic/backup "level"=0 "msg"="backupdir does not exist, skipping"  "dirname"="/data"

Expected behavior
Regardless of RWX PVC based backups, the snapshot webhook should fire whenever any backup to the restic repository is successful.
To Reproduce
Steps to reproduce the behavior:

Setup a namespace which has a PreBackupPod and no RWX PVCs
Create a backup Schedule object
Observe that the backup job completes
Look at the logs of that job and notice that:

The PreBackupPod based backup was successfully saved into the upstream restic repo
No snapshot webhook fired due to the /data folder not existing

Environment (please complete the following information):

Image Version: 0.3.1
K8s Version: v1.20.7
K8s Distribution: EKS controlled via Rancher

Not yet, we're sorry for that.
What is your expectation on a fix? We have K8up v2.0 release around the corner and would like to fix bugs in the way going forward. How critical is this for you? Would you need a backport?

Hi @cdchris12
I've done a hotfix with the v0.3.3-rc1. Could you please test this prerelease and tell us if that worked for you? We would then make a full patch release v0.3.3
Please note that this image is only available in ghcr.io, so please use ghcr.io/k8up-io/wrestic:v0.3.3-rc1 image.


[AutoRelease] t2-machinelearningcompute-2022-11-01-43428(Do not merge)

https://github.com/Azure/sdk-release-request/issues/3335
Live test success
https://dev.azure.com/azure-sdk/internal/_build?definitionId=1006
BuildTargetingString
azure-mgmt-machinelearningcompute
Skip.CreateApiReview
true

issue link:https://github.com/Azure/sdk-release-request/issues/3335


Add test checks all pods are running

To do this we need to check that a condition is eventually consistent, i.e. an action eventually passes for a period of time. Ginkgo by default doesn't have a way to do this. We also need this because the pods could transition through states or new pods can show up and for just a moment all pods could end up Running or Successful, when just after a pod could fail or a new one could pop up. To solve this I added an exported function - Consistent - that will perform an action with specified number of attempts and polling period.

/run cluster-test-suites

/run cluster-test-suites

@mnitchev

Ginkgo by default doesn't have a way to do this

Are you aware of Consistently? See https://onsi.github.io/ginkgo/#patterns-for-asynchronous-testing
Both Eventually and Consistently perform asynchronous assertions by polling the provided input. In the case of Eventually, Gomega polls the input repeatedly until the matcher is satisfied - once that happens the assertion exits successfully and execution continues. If the matcher is never satisfied Eventually will time out with a useful error message. Both the timeout and polling interval are [configurable](https://onsi.github.io/gomega/#eventually).

In the case of Consistently, Gomega polls the input repeatedly and asserts the matcher is satisfied every time. Consistently only exits early if a failure occurs - otherwise it continues polling until the specified interval elapses. This is often the only way to assert that something "does not happen" in an asynchronous system.

Yes, but it can't be used in the same way here. Only feasible way to write it is like this:
		Eventually(func() error {
			Consistently(checkPodSuccessfulPhase(wcClient), "10s", "1s").Should(Succeed())
			return nil
		}).
			WithTimeout(wait.DefaultTimeout).
			WithPolling(wait.DefaultInterval).
			Should(Succeed())

But this won't work. Both Eventually and Consistently will fail the test if the matcher isn't satisfied. After the timeout expires for Eventually and on the first failure for Consistently. So in this case the the entire test will fail (not just the current iterration of the Eventually loop) as soon as there is a pod that isn't in a successful state.

@mnitchev In my previous companies, we were wrapping Eventually and Consistently like
func EventuallyConsistent(assertFunction){
  Eventually(assertFunction)
  Consistently(assertFunction)
}

Example https://github.com/kubevirt/kubevirt/blob/bbf4069c2ea6164b9853cd6d1ae55704c7d944b1/tests/hyperv_test.go#L179

@erkanerol From the example you posted: that means just running them one after the other?
That also won't work - when the cluster is starting up you have pods coming up all the time, but occasionally have a second or two where all the current pods are running, but then the next second there's another pod coming up. So what you have is the Eventually passing, but then Consistently failing because the new pods are coming up.

/run cluster-test-suites

/run cluster-test-suites

/run cluster-test-suites


CLI: Support a standard LAKECTL_BASE_URI environment variable and --base-uri flag

to set a prefix for all other relative URIs in the command

Updated the issue to use base URI and not repository - this way we can use the same flag / environment variable as a general base value.


Take Event Dot to center of the date

How can I take events dot in center of the date ?

Yes I would like to know this as well.

did any one get any chance to take events dot in center ?


[sequelize]: We could leverage acutual "ARRAY" type that postgres has

Sequelize lets us use type: DataTypes.ARRAY(DataTypes.STRING)

Closing. Implemented in #67.


ACS Chat - Release 1.1.2

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

/azp run net - keyvault - tests

/azp run net - Azure.Communication.Chat - tests

API change check
API changes are not detected in this pull request.


Breaking (?) changes in 0.7.18 -> 0.7.19

Describe the bug
This might not strictly be a bug, but I find this behavior disruptive. Upon updating from 0.7.18 to 0.7.19, I observed the following changes. After reviewing the changelog, it's unclear to me whether this change was intentional or how I might revert to the previous behavior. Could you clarify?

Reproduce the bug
N/A
List your environment
N/A

Please run mdformat --version as asked by the issue template.
The table syntax is not CommonMark so vanilla mdformat will wrap it. I suspect you don't have mdformat-tables installed, which you should if you use that syntax.
Mdformat explicitly has no promise of stable formatting style so style changes are not considered breaking.

Hi @hukkin,

run mdformat --version as asked by the issue template.

It's a bit tricky to do so when mdformat is used exclusively as a pre-commit from your repository. We're keeping dependencies up-to-date via Renovate, so given the following change:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index d82556b..38b1918 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -34,7 +34,7 @@ repos:
           )$

   - repo: https://github.com/executablebooks/mdformat
-    rev: 0.7.18
+    rev: 0.7.19
     hooks:
     - id: mdformat
       additional_dependencies:

My best guess is that version 0.7.18 worked fine, while 0.7.19 introduced the reformat issue.
Regardless, adding mdformat-tables to the additional_dependencies resolved the problem — thanks for the suggestion! 👍

That said, I don’t entirely agree that this isn’t a breaking change. While it may appear to be a style adjustment, it does result in Markdown being reformatted, which in turn causes people's "testing" pipeline to fail. For many teams, including ours, automerge is enabled for SemVer patch updates from tools like Renovate precisely because such changes should not result in red pipelines.
I’d kindly ask you to consider using at least a minor version bump for updates like this in the future. It would also help to make such changes more prominent in the changelog, as they can easily be overlooked.
To be clear, I deeply appreciate the work you’re doing and the value of your contributions to open source. Thank you again for your efforts!  🙌

Regardless, adding mdformat-tables to the additional_dependencies resolved the problem

Glad to hear that it worked!

I don’t entirely agree that this isn’t a breaking change. While it may appear to be a style adjustment, it does result in Markdown being reformatted, which in turn causes people's "testing" pipeline to fail. For many teams, including ours, automerge is enabled for SemVer patch updates from tools like Renovate precisely because such changes should not result in red pipelines.

Thanks for the feedback! Maybe renovate shouldn't automerge on patch updates if major version is zero though? I'll consider this in the future regardless (and try to reach v1.0.0).


Add support for WorldGuard

Add support for preventing drops within WorldGuard regions

This is implemented, just not released yet. Closing ticket as it's been implemented.


Some schedules conflict even when no conflicts selected

Could you give an example of this?

Closing this for now. Please reopen if this is still an issue.


Feature: Provide frame numbers in RPU.json

Hello,
I sometimes want to check individual frames metadata, the only way I found was to specify the frame using info -f.  However, it would be very useful if the RPU.json file contained frame numbers (via an option so not to impact current behaviour).
It's possible I missed another method to accomplish the above, thank you.

The full RPU.json export is not intended to be human readable, you should be able to easily script something.
It's a JSON array.
For example with jq you can do jq '.[index]' RPU_export.json where index is the frame number.


Wrong Output for Jaccard Index

When I am calculating Jaccard Index the function ln_jc giving some wrong output. For example, the function should compute the Jaccard index for 1 and 8 nodes but calculate for 1 and 7 which is already an existing link. In the same way, the Jaccard score for link 1 and 9 is showing 0.2 but it must be 0.25.  Because, we have only one intersection 4 and four union 7, 3, 4, 8
Code
graph <- graph_from_data_frame(df_graph, directed = FALSE)
plot(graph, vertex.label = V(graph)$name)
jaccard_index <- lp_jc(graph)

Reproducible Data
structure(list(To = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 4L, 4L, 5L,
8L, 8L, 9L, 9L), From = c(7L, 3L, 4L, 7L, 4L, 5L, 4L, 5L, 6L,
6L, 5L, 6L, 4L, 8L)), class = "data.frame", row.names = c(NA,
-14L))

Hi @mostafiz67,
Please note that the output of the LinkPrediction functions are indices of your nodes in the igraph object, not node labels. In the example you provide, the node with label "7" has index 8 and the node with label "6" has index 9:
library(dplyr)
library(igraph)

df_graph <-
  structure(list(
    To = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 4L, 4L, 5L,
           8L, 8L, 9L, 9L),
    From = c(7L, 3L, 4L, 7L, 4L, 5L, 4L, 5L, 6L,
             6L, 5L, 6L, 4L, 8L)
  ),
  class = "data.frame",
  row.names = c(NA,-14L))

graph <- graph_from_data_frame(df_graph, directed = FALSE)

tibble(index = 1:9,
       label = V(graph)$name)

Therefore, the output of LinkPrediction is correct. I'm closing this issue.


Improve Prometheus dashboard

towards https://github.com/giantswarm/roadmap/issues/1963

Add folders to organize panels
Add node memory/cpu capacity on panels
Add panel : Number of restarts
Add panel : Number of samples scraped by job

Before

After

Checklist

[ ] Update changelog in CHANGELOG.md in an end-user friendly language.

I'm trying to figure out how manage promql approximation.
As you can see on the Restarts panel, sometimes the result is a float, I'd like to have an integer...

I'm trying to figure out how manage promql approximation. As you can see on the Restarts panel, sometimes the result is a float, I'd like to have an integer...

I guess metrics are approximative by definition.
When we have logs we can have precise events.

Added some scraping and rules info:

Also, a bit of rewording for help bubbles, and these 2 new rows are collapsed by default.

Rebased on latest master, and updated changelog.
Ready for review :grin:

We might want to have another dashboard for the rules later but it looks good to me


kubevirt upgrade 0.18.1 -> 0.19.0 failed on minishift

/kind bug
What happened:
The kubevirt-template-validator projects wants to test compatibility against various kubevirt versions. To do so, on travis we run minishift, we install kubevirt version N-1, we do the tests, and if succesfull we upgrade kubevirt using kubevirt-operator to version N. Of course N <= last released kubevirt version.
In this scenario, the upgrade from version v0.18.1 to v0.19.0 failed with this error:
Something went wrong
+kubectl describe -n kubevirt kv/kubevirt
Name:         kubevirt
Namespace:    kubevirt
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"kubevirt.io/v1alpha3","kind":"KubeVirt","metadata":{"annotations":{},"name":"kubevirt","namespace":"kubevirt"},"spec":{"imagePullPolicy"...
API Version:  kubevirt.io/v1alpha3
Kind:         KubeVirt
Metadata:
  Creation Timestamp:  2019-07-26T09:15:43Z
  Finalizers:
    foregroundDeleteKubeVirt
  Generation:        1
  Resource Version:  7399
  Self Link:         /apis/kubevirt.io/v1alpha3/namespaces/kubevirt/kubevirts/kubevirt
  UID:               f20c62d1-af85-11e9-9dea-42010a140132
Spec:
  Image Pull Policy:  IfNotPresent
  Image Tag:          v0.19.0
Status:
  Conditions:
    Last Probe Time:            2019-07-26T09:19:55Z
    Last Transition Time:       <nil>
    Message:                    Transitioning from previous version v0.19.0 with registry index.docker.io/kubevirt to target version v0.18.1 using registry index.docker.io/kubevirt
    Reason:                     UpdateInProgress
    Status:                     True
    Type:                       Updating
    Last Probe Time:            2019-07-26T09:25:14Z
    Last Transition Time:       2019-07-26T09:25:14Z
    Message:                    An error occurred during deployment: unable to update clusterrole &ClusterRole{ObjectMeta:k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta{Name:kubevirt.io:admin,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{app.kubernetes.io/managed-by: kubevirt-operator,kubevirt.io: ,rbac.authorization.k8s.io/aggregate-to-admin: true,},Annotations:map[string]string{kubevirt.io/install-strategy-registry: index.docker.io/kubevirt,kubevirt.io/install-strategy-version: v0.19.0,},OwnerReferences:[{kubevirt.io/v1alpha3 KubeVirt kubevirt f20c62d1-af85-11e9-9dea-42010a140132 0xc0013273eb 0xc0013273ea}],Finalizers:[],ClusterName:,Initializers:nil,},Rules:[{[get] [subresources.kubevirt.io] [virtualmachineinstances/console virtualmachineinstances/vnc] [] []} {[update put] [subresources.kubevirt.io] [virtualmachines/start virtualmachines/stop virtualmachines/restart] [] []} {[get delete create update patch list watch deletecollection] [kubevirt.io] [virtualmachines virtualmachineinstances virtualmachineinstancepresets virtualmachineinstancereplicasets virtualmachineinstancemigrations] [] []}],AggregationRule:nil,}: clusterroles.rbac.authorization.k8s.io "kubevirt.io:admin" is forbidden: attempt to grant extra privileges: [{[update] [subresources.kubevirt.io] [virtualmachines/start] [] []} {[put] [subresources.kubevirt.io] [virtualmachines/start] [] []} {[update] [subresources.kubevirt.io] [virtualmachines/stop] [] []} {[put] [subresources.kubevirt.io] [virtualmachines/stop] [] []}] user=&{system:serviceaccount:kubevirt:kubevirt-operator f02e0f36-af85-11e9-9dea-42010a140132 [system:serviceaccounts system:serviceaccounts:kubevirt system:authenticated] map[]} ownerrules=[{[get] [ user.openshift.io] [users] [~] []} {[list] [ project.openshift.io] [projectrequests] [] []} {[get list] [ authorization.openshift.io] [clusterroles] [] []} {[get list watch] [rbac.authorization.k8s.io] [clusterroles] [] []} {[get list] [storage.k8s.io] [storageclasses] [] []} {[list watch] [ project.openshift.io] [projects] [] []} {[create] [ authorization.openshift.io] [selfsubjectrulesreviews] [] []} {[create] [authorization.k8s.io] [selfsubjectaccessreviews] [] []} {[get] [] [] [] [/healthz /healthz/*]} {[get] [] [] [] [/version /version/* /api /api/* /apis /apis/* /oapi /oapi/* /openapi/v2 /swaggerapi /swaggerapi/* /swagger.json /swagger-2.0.0.pb-v1 /osapi /osapi/ /.well-known /.well-known/* /]} {[get list watch patch update patch] [kubevirt.io] [kubevirts] [] []} {[get list watch create update delete patch] [] [serviceaccounts services endpoints] [] []} {[get list watch create delete patch] [batch] [jobs] [] []} {[get list watch create delete patch] [apps] [deployments daemonsets] [] []} {[get list watch create delete patch update] [rbac.authorization.k8s.io] [clusterroles clusterrolebindings roles rolebindings] [] []} {[get list watch create delete patch] [apiextensions.k8s.io] [customresourcedefinitions] [] []} {[get list watch] [security.openshift.io] [securitycontextconstraints] [] []} {[get patch update] [security.openshift.io] [securitycontextconstraints] [privileged] []} {[get list watch create delete] [admissionregistration.k8s.io] [validatingwebhookconfigurations] [] []} {[get create update] [admissionregistration.k8s.io] [validatingwebhookconfigurations mutatingwebhookconfigurations] [] []} {[get create update] [apiregistration.k8s.io] [apiservices] [] []} {[get list] [] [pods] [] []} {[create] [] [pods/exec] [] []} {[get list watch patch] [kubevirt.io] [virtualmachines virtualmachineinstances virtualmachineinstancemigrations] [] []} {[watch list] [kubevirt.io] [virtualmachineinstancepresets] [] []} {[get list watch] [] [configmaps] [] []} {[watch list] [] [limitranges] [] []} {[get list delete update create] [] [secrets] [] []} {[get list watch] [] [configmaps] [] []} {[get list watch delete create] [policy] [poddisruptionbudgets] [] []} {[get list watch delete update create] [] [pods configmaps endpoints] [] []} {[update create patch] [] [events] [] []} {[update] [] [pods/finalizers] [] []} {[get list watch update patch] [] [nodes] [] []} {[get list watch] [] [persistentvolumeclaims] [] []} {[*] [kubevirt.io] [*] [] []} {[*] [cdi.kubevirt.io] [*] [] []} {[get list watch] [k8s.cni.cncf.io] [network-attachment-definitions] [] []} {[update list watch] [kubevirt.io] [virtualmachineinstances] [] []} {[get] [] [secrets persistentvolumeclaims] [] []} {[patch] [] [nodes] [] []} {[create patch] [] [events] [] []} {[get list watch] [] [configmaps] [] []} {[create] [] [secrets] [] []} {[get list] [subresources.kubevirt.io] [version] [] []} {[get] [subresources.kubevirt.io] [virtualmachineinstances/console virtualmachineinstances/vnc] [] []} {[put update] [subresources.kubevirt.io] [virtualmachines/restart] [] []} {[get delete create update patch list watch deletecollection] [kubevirt.io] [virtualmachines virtualmachineinstances virtualmachineinstancepresets virtualmachineinstancereplicasets] [] []} {[get] [subresources.kubevirt.io] [virtualmachineinstances/console virtualmachineinstances/vnc] [] []} {[put update] [subresources.kubevirt.io] [virtualmachines/restart] [] []} {[get delete create update patch list watch] [kubevirt.io] [virtualmachines virtualmachineinstances virtualmachineinstancepresets virtualmachineinstancereplicasets] [] []} {[get list watch] [kubevirt.io] [virtualmachines virtualmachineinstances virtualmachineinstancepresets virtualmachineinstancereplicasets] [] []} {[create] [authentication.k8s.io] [tokenreviews] [] []} {[create] [authorization.k8s.io] [subjectaccessreviews] [] []} {[get list] [subresources.kubevirt.io] [version] [] []} {[get list] [subresources.kubevirt.io] [version] [] []} {[create] [ authorization.openshift.io] [selfsubjectrulesreviews] [] []} {[create] [authorization.k8s.io] [selfsubjectaccessreviews] [] []} {[create] [authorization.k8s.io] [selfsubjectaccessreviews selfsubjectrulesreviews] [] []} {[create] [ build.openshift.io] [builds/docker builds/optimizeddocker] [] []} {[create] [ build.openshift.io] [builds/jenkinspipeline] [] []} {[create] [ build.openshift.io] [builds/source] [] []} {[get] [] [] [] [/api /api/* /apis /apis/* /healthz /openapi /openapi/* /swagger-2.0.0.pb-v1 /swagger.json /swaggerapi /swaggerapi/* /version /version/]} {[delete] [ oauth.openshift.io] [oauthaccesstokens oauthauthorizetokens] [] []} {[get] [] [] [] [/version /version/* /api /api/* /apis /apis/* /oapi /oapi/* /openapi/v2 /swaggerapi /swaggerapi/* /swagger.json /swagger-2.0.0.pb-v1 /osapi /osapi/ /.well-known /.well-known/* /]} {[impersonate] [authentication.k8s.io] [userextras/scopes.authorization.openshift.io] [] []} {[create get] [ build.openshift.io] [buildconfigs/webhooks] [] []}] ruleResolutionErrors=[]
    Reason:                     DeploymentFailed
    Status:                     False
    Type:                       Synchronized
  Observed Kube Virt Registry:  index.docker.io/kubevirt
  Observed Kube Virt Version:   v0.18.1
  Operator Version:             v0.0.0-master+$Format:%h$
  Phase:                        Deployed
  Target Kube Virt Registry:    index.docker.io/kubevirt
  Target Kube Virt Version:     v0.19.0
Events:                         <none>

What you expected to happen:
Succesfull upgrade from v0.18.1 to v0.19.0
How to reproduce it (as minimally and precisely as possible):
We try to follow closely the install and upgrade procedures as per docs.
We install using kubevirtci, script here: https://github.com/fromanirh/traviskube/blob/f66fb6db38396b7a12f2fe807a1a082355c2b273/ci/deploy-kubevirt
we upgrade with virt-operator, script here: https://github.com/fromanirh/kubevirt-template-validator/blob/forward-backward-compat/hack/env/upgrade-kubevirt.sh
Anything else we need to know?:
travis config and scripts: https://github.com/fromanirh/kubevirt-template-validator/blob/forward-backward-compat/.travis.yml
travis run: https://travis-ci.org/fromanirh/kubevirt-template-validator/builds/563927227
Environment:

KubeVirt version (use virtctl version): v0.18.1
Kubernetes version (use kubectl version): minishift 3.11
VM or VMI specifications: not relevant

IIUC, you are using the v0.18.1 operator to update KubeVirt from v0.18.1 to v0.19.0, right?
That won't work (at least not always), because in case the newer KubeVirt version needs extended RBAC rules, like in this case, the old operator can't deploy the new version because it doesn't have those extended RBAC rules itself. The way to go is to update the operator itself by applying the newer kubevirt-operator.yaml manifest. The new operator will upgrade KubeVirt to the same version (without setting the imageTag on the CR).

yes, that's the case, thanks for clarifying. Not sure if is really a bug, then. Maybe worth a mention in the user-guide?

user-guide patch proposed here: https://github.com/kubevirt/user-guide/pull/265
We can close this issue.


fix api scan metadata name

fix api scan metadata name
Change the following metadata name:
apiname -> api_name
apilocation -> api_location
apitype -> api_type

Great! No warnings this time. We might have to improve that warning message a bit because it didn't make any sense. I'll open a bug. Thanks!


Override ARCH (archiver) in lapack-netlib/make.inc to avoid conflict with ARCH (architecture)

This PR solves two issues when cross-compiling OpenBLAS for RISCV64.

compiling lapack-netlib fails with:

riscv64 -ru ../../libRblas_riscv64-r0.3.0.dev.a sbdsvdx.o spotrf2.o
...
BUILDSTDERR: make[2]: riscv64: Command not found
...

ARCH needs an override keyword in lapack-netlib/make.inc because it is taken as ARCH (architecture) from the main Makefile (hence what should be riscv64-unknown-linux-gnu-ar becomes riscv64). I have added the override when make.inc is generated from the main Makefile.

c_check fails withe the error:

riscv64-unknown-linux-gnu-gcc: error: unrecognized command line option '-m64'
C Compiler (riscv64-unknown-linux-gnu-gcc -m64) is something wrong.
1 at ./c_check line 169.

I have added this in c_check:
if ($architecture eq "riscv64") {
    $defined = 1;
}

Actually it should read "support riscv64"
I am unsure if setting ARCH helps netlib lapack, to my search & look-around understanding it sets ARCH to 'ar' in absence of one in top config file.

Well, if ARCH is set from the command line, then the ARCH = $(AR) in netlib is ignored. That's why we should use override.

I must admit it is stlll not clear to me where the "wrong" setting of the ARCH entry in make.inc originates. While the OpenBLAS Makefile does use this keyword internally to denote architecture, I do not see how this would be able to override the AR entry that is used in writing make.inc. Does the shell environment already contain an entry named ARCH by default ?

Never mind, I think I understand now (again) that the issue is caused by having  to specify the ARCH option on the make command line. Normally c_check should already set this automatically, perhaps the real issue is that there is another round of setting $architecture from parsing $data around line 200 of c_check that seems to have been overlooked when the riscv64 patch/branch
was created. I wonder what ends up as ARCH in your Makefile.conf when you do not specify it yourself ?

Indeed, if you don't specify ARCH on the command line, it gets detected in c_check based on the compiler (CC) and written in Makefile.conf. In this case, top level ARCH is ignored in lapack-netlib. However, when someone wants to specify it on the command line, it gets priority (details here https://www.gnu.org/software/make/manual/html_node/Overriding.html).
In my opinion, using ARCH to denote both architecture and archive in the same project is an issue that should be addressed.

The naming conflict only arose from combining the two separate projects. Perhaps the original GotoBLAS2 would have been better off using something like CPUARCH throughout to avoid confusion, but I am not sure if the required changes in most Makefiles would be worthwile now. Perhaps Makefile.prebuild should simply override any ARCH that was specified on the command line if it serves no useful purpose ?


Flutter 1.10.15 shows crash spike regression over 1.10.14...

Crash of the tool is 4.5%, nearly 3x what 1.10.14 was.
/cc @zanderso

That high number is likely an artifact of a small number of users on the first day after the new dev release. Today so far the number is 1.9%, and since the release the aggregate number is ~2.3% for ~1000 users. None of the crashes in crash logging affects more than 5 users. The top I expect the crash rate to settle down as more folks try out the new dev.
As an aside, I think the difficulty of monitoring the crash rate over a short time scale for a small number of users speaks to a growing need to select the stable release from more dev candidates over a longer period of time, or something equivalent to that. /cc @tvolkert

Agreed --- the number has settled as of this morning. Closing --- and when I screen in the future for high crash rates, I'll omit the first couple of days on a dev release to avoid premature filing. Thanks!


Proposal: new index on positions

Okay, so I've noticed that after running Teslamate on my Raspberry Pi 4 for over a year especially the 'Km driven' on the 'Drive Stats' has become sluggish.
I propose the following index:
create index 'name that you pick' on positions ((date_trunc('day', date)::date));
I have done some timings on my Pi for 7 days and 365 days with/without the index, here are the results:

7 days
Before
After

1st run
0m52.566s
0m11.859s

2nd run
0m41.985s
0m11.745s

3rd
0m32.045s
0m11.647s

365 days
before
After

1st run
0m31.581s
0m12.100s

2nd run
0m21.928s
0m11.793s

3rd run
0m27.231s
0m11.565s

It will improve response times, but I can't tell if/how this will impact logging the positions. The rest of the dashboard is pretty instant and the index will only get it some of the way.

The fact that both the 7 days and 365 days take ~11s seems strange. Surely the 7 day version should be quicker than the 365 day one?

Indexing isn't necessary, the report shouldnt be built off positions as that table is just going to get slower and slower over time. I redid this query to use drives instead.

My previous comment was wrong after speaking to @adriankumpf . I will look at the indexing and come up /w a batter plan.

@morten-holm So I dont see the index helping too much, the problem is it needs to scan hundreds of thousands of rows.
1st, can you test this query in grafana? This should be SLIGHTLY faster.
The other option is 100% up to @adriankumpf and that would be to create a new table where the distance travelled could be kept and he would need to create the code in elixir to do so. Honestly, the only reason it is as slow as it is for you is because of the Rasp Pi hardware. SD cards aren't great for databases.

SELECT
    date::date as time,
    convert_km(COALESCE(max(odometer) - min(odometer), 0)::numeric, '$length_unit') as "distance_$length_unit"
FROM
    positions
WHERE
    car_id = $car_id
    AND $__timeFilter(date)
GROUP BY
    date::date
ORDER BY
    1


[feat] Leftover data after bundle is uninstalled on Windows

Describe the bug
When building an .msi installer with cargo tauri build, installing and uninstalling the app leaves some orphaned data on the user's disk. Specifically, a directory under %localappdata%\<bundleIdentifier> remains and is not empty.
Reproduction
Video demonstration (feel free to skip ahead during the compilation):
https://user-images.githubusercontent.com/817256/213619469-8700fe26-3ea0-45fd-aef2-c35b40901311.mp4
Expected behavior
Installing and uninstalling a blank tauri app is a noop.
Platform and versions
Environment
  › OS: Windows 10.0.19044 X64
  › Webview2: 109.0.1518.52
  › MSVC:
      - Visual Studio Build Tools 2019
  › Node.js: 19.0.1
  › npm: 8.19.2
  › pnpm: Not installed!
  › yarn: Not installed!
  › rustup: 1.25.1
  › rustc: 1.66.0
  › cargo: 1.66.0
  › Rust toolchain: stable-x86_64-pc-windows-msvc

Packages
  › @tauri-apps/cli [NPM]: 1.2.2 (outdated, latest: 1.2.3)

Stack trace
No response
Additional context
No response

I don't think this qualifies as a bug since virtually every app behaves like this. How about we convert this to a feature request, asking for a checkbox in the uninstaller to remove the data?
The question would be if we want to make that extensible and how, for data the dev wrote to disk manually. Or maybe we just delete the paths behind all the app_X apis 🤔

How about we convert this to a feature request, asking for a checkbox in the uninstaller to remove the data?
I would be happy with this solution too!

This has been a part of tauri for a while now.
What does this mean? Theres a feature to delete leftover data on uninstall? Im running into this issue atm.

yes, your user will be prompted to uninstall the app data which is located at %localappdata%\<bundleIdentifier>

this is for NSIS installer only

What about .msi?
I have been struggling to clean appdata with wix fragments and it doesn't seem to be any other way?


How to prepare .pkl asset files from raw files of waymo motion dataset

Congratulations to the amazing work!
I'm trying to running metadrive with waymo motion dataset, and I see your work read from waymo .pkl file as examples of assets. If it is possible, could you please release the code that transform raw files of waymo motion dataset to the .pkl file that feed into your work? Or is it possible to update your documentation with more details about replaying with waymo motion dataset?
Thanks a lot in advance.

Hi,
The code for transforming the raw Waymo data is still under preparation and we will release it soon. Sorry about that.
Currently, we provide some transformed and filtered cases at https://github.com/metadriverse/metadrive/releases/tag/MetaDrive-0.2.5 (with .zip suffix). You can follow this example to load them into MetaDrive.
Quanyi


(Dropbox) Removed beta version checking

…st package is the beta

@The-Running-Dev why did you close this PR and remove the branch you were working on?


Graph: Node coloring parameter

The default coloring is that entering nodes are colored green, updated orange and exiting red. We might want to enable the user to choose how nodes are colored.
This can be done in many ways.
One idea:
Allow customization of the entering, updating and exiting colors.
Second idea:
Allow coloring nodes by course properties, like
section, semester (qualitative color map)
credits, registrations (sequential color map)

Qualitative color maps implemented for credits, semester, and section.
Future possibility: sequential color maps for credits and registrations


Add seek(0) to request data to prevent issues on retries

Closes #621
Credits go to @martindurant for the code.
When a simple_upload request fails but the data BytesIO stream was fully consumed, the retry attempt may fail because it does not send any data in the retried request. This PR attempt to fix that by always performing a seek(0) before starting the request.

Thanks for this fix @Metamess! We have hit the same bug! 🙏
@martindurant would be wonderful to get a release asap. 🙏


[AVAssetWriterInput appendSampleBuffer:] Cannot append sample buffer: Must start a session (using -[AVAssetWriter startSessionAtSourceTime:) first

Xcode 11.2.1
Swift 5
ARVideoKit (~> 1.5.51)
iPhone 7+
ARSCNView

I have the vc setup the same exact way that you have it in your sample project except I grab the url once it's time to save:
recorder?.stop({ [weak self](url) in

    DispatchQueue.main.async { [weak self] in

        self?.alertToSaveOrDelete(videoUrl: url)
    }
 })

Also in viewDidLoad I have this because I display a SKVideoNode and I need it for sound:
do {
        try AVAudioSession.sharedInstance().setCategory(.playAndRecord, mode: .videoRecording, options: [.defaultToSpeaker])
        //try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default) // I tried this too
        try AVAudioSession.sharedInstance().setActive(true)
    } catch {
        print(error)
    }

When I first start recording the recorder works fine. The problem occurs when I go the background and come back then start recording again. Once I press the stop/save button I get a crash:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '*** -[AVAssetWriterInput appendSampleBuffer:] Cannot append sample buffer: Must start a session (using -[AVAssetWriter startSessionAtSourceTime:) first'
*** First throw call stack:

In viewWillAppear I run recorder?.prepare(configuration)
In viewWillDisappear if running I stop it and regardless I call recorder?.rest().
I tried grabbing the url in the delegate method:
recorder?.stop()

func recorder(didEndRecording path: URL, with noError: Bool) {
    if noError {

        // with and without the mainqueue it crashes here
        DispatchQueue.main.async { [weak self] in

            self?.alertToSaveOrDelete(videoUrl: path)
        }
    }
}

But the same problem occurs even when I first try to record before going to the background.
The crash always occurs when I go to the background and back then record and save but it also occasionally happens when I successfully record/save the first time but the second or third time is the same exact crash.
UPDATE:
Looking at the StackTrace the problem seems to stem from thread 83 __pthread_kill:
let audioBufferQueue = DispatchQueue(label: "com.ahmedbekhit.AudioBufferQueue")

UPDATE:
I posted the question on Stack Overflow. Somebody tried to help me but their answer didn't work. There is something else causing the issue:
https://stackoverflow.com/q/60146678/4833705
UPDATE
Without having to go to the background it crashes randomly and more often then not when saving using:
recorder?.stop({ [weak self](url) in ...
Same crash result when using:
func recorder(didEndRecording path: URL, with noError: Bool) {

help，same problem

iPhone 7 plus 13.3， 13.3.1
Will appear

@DPRuin it appears that the AudioSession queue is beginning before the start session method is executed. Looking into it.

audioSettings = audioDataOutput.recommendedAudioSettingsForAssetWriter(writingTo: .m4a) as? [String : Any]

audioSettings = audioDataOutput.recommendedAudioSettingsForAssetWriter(writingTo: .m4a) as? [String : Any]----fix audio .m4v to .m4a,    success fix iphone 7 plus 13.3.1 13.3 problem

update :
But iphone 7 plus 13.2.3    some time crash

@DPRuin it appears that the AudioSession queue is beginning before the start session method is executed. Looking into it.

What should I do

Was a resolution for this ever found @AFathi ?

same problem

Any solutions for this? Getting the same problem.

Same problem

What if we check assetWriter status while we write to writerQueue in stopAndExport ? @AFathi

I think it's fixed here. https://github.com/AFathi/ARVideoKit/pull/122


Added botPerms to every system command and updated Events tutorial.

As seen is this pr, every system cmd built into Klasa has been updated with botPerms and have updated the events tutorial please feel free to ask me any questions.

smh, the command handler itself will not process very far if the bot cannot send messages in the context it is in... send messages as a botPerm doesn't need to be set ever...


file:///C:/Users/user/OneDrive%20-%20Balqa%20Applied%20University/Desktop/HTML/index.html

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

Describe the solution you'd like:

Describe alternatives you've considered:

Additional context:

Closing as incomplete. Please feel free to add more information if you have any and we can re-open the issue.


Cleanup telemetry

@keithrob Should this be merged or can we close it?

I'm going to close since this is going into m133. If we still need this we can reopen


Support setting security-scan-runner job defaultBackoffLimit and defaultTTLSecondsAfterFinished dynamically

Currently it is set when cis-operator pod starts up.

The reason for this was change is this conversation #77 (comment)
However, I tested this using this fix PR https://github.com/rancher/cis-operator/pull/87  and even if we now we read the env during job create - to change the env or set new values, we still need to restart the operator.
So this change is not avoiding the pod restart.
Hence no need to make this change.


Cell with line magic in it doesn't map correctly

#%%
testing = 'hello'
%whos
testing = 'world'
Brings up the temp file. Not the source file.

Seems to work now


Namespace parameter doesn't seem to be working

When I run mongo-connector (v5) without specifying a namespace solr indexing runs correctly
mongo-connector -m localhost:27017 -t http://localhost:8983/solr/test1 -d solr_doc_manager
However, if I add a namespace in there (starting from scratch) indexing doesn't run
mongo-connector -n 2.Assets -m localhost:27017 -t http://localhost:8983/solr/test1 -d solr_doc_manager
The connector runs, no errors occur, but nothing happens. Any ideas?

hi Millar,
when you are running with the above name-space command, are you getting any error in mongod(mongo server) saying "authentication failed to  for db '2' ..."...?

Nope! No errors at all. I worked around the issue after reading this:
https://github.com/10gen-labs/mongo-connector/issues/165
It doesn't provide any answers to why the issue is occurring, but it gave me something to try. All I did  after reading this was edit a document in the specified namespace and then the whole namespace began indexing. After that first index I could then delete the index and reindex to my hearts content. This was the same for a few of the databases on my server.
Cheers

Seems like this issue has been resolved and hasn't otherwise been active in awhile. Please feel free to reopen this if there's more to discuss.


Refactor network devices

I just removed the NetworkDevice dependency in the MqttLogger library that causes a build break with ESP-IDF v5.1.2 and Arduino v2.0.14. Then I noticed that network devices have some common code, so I just put it in a parent class.

Hi,
thanks for your PR. I'll need a little time to look into it.

Hi,
This PR is on my radar. I want to wait with merging until after the release, because we already have many changes. Previous experience dictates that too many changes in one release aren't a good idea.
Also, feel free to join us on discord
https://discord.gg/vzbQbag9

Hi,
no problem, feel free to handle the merge as you see fit. In the meantime I merged the current master and resolved the conflicts.


"CNAME not supported" error when using tunnel token

The problem
Log error in system log, but Addon keeps on running, so not an urgent problem. Something I should do, or that needs to be fixed?
What version of Cloudflared has the issue?
2.0.13
What was the last working version of Cloudflared?
No response
What type of installation are you running?
Home Assistant OS
Add-on YAML Configuration
No response
Anything in the logs that might be useful for us?
Logger: homeassistant.components.cloudflare
Source: components/cloudflare/__init__.py:50
Integration: Cloudflare (documentation, issues)
First occurred: 22. august 2022, 13:20:55 (22 occurrences)
Last logged: 10:20:57

Error updating zone XXXXXX.com: Record type CNAME, is not supported

Steps to reproduce the issue
Using simple setup with only tunnel token in config. rest is vanilla HA on RPi
Additional information
No response

That Home Assistant log message doesn't have anything in common with this add-on.


Roll Flutter Engine from 36dccf7bb25c to b2e256b3ac47 (4 revisions)

https://github.com/flutter/engine/compare/36dccf7bb25c...b2e256b3ac47
2024-07-11<EMAIL_ADDRESS>Roll Skia from 004c81523e44 to 037d5f8a727f (1 revision) (flutter/engine#53818)
2024-07-11<EMAIL_ADDRESS>[Impeller] move more aiks tests to DL.  (flutter/engine#53792)
2024-07-11<EMAIL_ADDRESS>Roll Skia from ec4a1e03f7b0 to 004c81523e44 (23 revisions) (flutter/engine#53813)
2024-07-11<EMAIL_ADDRESS>Roll Skia from 2783ba54bf8e to ec4a1e03f7b0 (9 revisions) (flutter/engine#53797)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC bdero@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Key is of 8 character ?

what if my key is of 8 characters ?
In that case this code crashes , Please help

That is interesting. Normally it should be padded but it seems the key is just too short. please try to use longer keys.


Bad expression describe for every minute of the hour

DescCron shows 'every 2 hours' for this expression '* */2 * * *'  while it should show 'every minute of the second hour'

@jonsoci thank you for reporting this. We use cron-utils for deriving cron description.
I tested this expression with updated version of cron-utils. Still the issue exists.
So I have raised a issue in the cron-utils repos: https://github.com/jmrozanec/cron-utils/issues/477


Placeholder for empty references

I thought I did that already (with grey font), but currently empty record looks like this:

Probably your implementation got lost in some rewriting of the bib-record rendering.
As we rely on that bib-record rendering, it should be solve there. Because it renders '.' it would be 'hard' to understand that the record is 'empty, and the solution would be a hack.
Closing this in favor of #684


Chakra JS data structure documentation

It would be great if there was some documentation on how chakra implements the JS datastructures such as arrays and objects and what goes on in the JIT world.

Agreed!  A blog would be a great forum for this.  I'm not committing to anything here, since it would definitely be pressure on resources, but I think this is something we should seriously consider.

I understand. Would it work if I interviewed the team and took some notes? May be turn it into a little gitbook or something. The value of this is when someone is working on performance sensitive javascript, its important to understand what is going on under the hood. e.g why is new Array(1000) a lot faster than a 100 array.push calls.

We have some old blog posts and talks that are still somewhat relevant- are you thinking something along these lines?
https://blogs.msdn.microsoft.com/ie/2012/06/13/advances-in-javascript-performance-in-ie10-and-windows-8/
https://www.youtube.com/watch?v=OqnMmoF2GqM

Hi Hitesh,
That's still somewhat a high level overview. I was more interested in how a
JavaScript object is stored in memory? How do you ensure fast property
access? When do bailouts happen? What happens when more properties are
added to an object. How to make large hash maps efficient? . How does array
allocations work on .push? How do you ensure functions get inlined? How do
you profile chakra e.t.c
An example is I am writing a simple virtual Dom diffing library to achieve
fast speeds. How do I optimize my js for fast perf and efficient garbage
collection. To do that understanding what goes under the hood in js runtime
would be very valuable for any developer.
On Tuesday, February 23, 2016, Hitesh Kanwathirtha<EMAIL_ADDRESS>wrote:

We have some old blog posts and talks that are still somewhat relevant-
are you thinking something along these lines?
https://blogs.msdn.microsoft.com/ie/2012/06/13/advances-in-javascript-performance-in-ie10-and-windows-8/
https://www.youtube.com/watch?v=OqnMmoF2GqM
—
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/ChakraCore/issues/306#issuecomment-188091063
.

@abchatra has written some posts regarding this which provide some insight into JS engine internal data structures. You can find them at http://abchatra.github.io/

Let me know if you have any questions. I will be glad to help. Also if you are interested in particular topic do let me know.

Thanks Abhijit,
Thanks for the blogs. There's some great stuff there.  Looking forward to
inline cache article.
This is the kind of technical stuff that I think is very interesting.
I'm personally interested to learn how arrays and object maps work. How is
their runtime and memory performance of different operations.
How functions get stored and called. When do they get inlined? How scope
inheritance is calculated?
Basically how can I write my JavaScript so it performs at the speed close
to something written in C++.
On Wednesday, February 24, 2016, Abhijith Chatra<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

Let me know if you have any questions. I will be glad to help. Also if you
are interested in particular topic do let me know.
—
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/ChakraCore/issues/306#issuecomment-188293322
.

+1. I'd like to read more stuff about this too. That blog was great, too bad it had only 2 posts though.


isSecureTextEntry warning

Hi,
Thanks for your awesome repo. 👌🏼
Although I set isSecureTextEntry as you can see in the screenshot below:

I got this warning:
IB Designables: Ignoring user defined runtime attribute for key path "KeyboardType" on instance of "SkyFloatingLabelTextField.SkyFloatingLabelTextField". Hit an exception when attempting to set its value: [<SkyFloatingLabelTextField.SkyFloatingLabelTextField 0x7fc8cb08b600> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key KeyboardType.
Any help?

When I shutdown and open my MacBook again all warning disappeared :)


TravelAgent and 1.15

1.15 still doesn't have TravelAgent, however, the methods are now implemented in PlayerPortalEvent. So we should update the MVPlayerListener to support that.
I'll see if I can open a pull request for this.

Should be added 5.0.0 Release Milestone #2418

Should've been closed by #2580.


[Merged by Bors] - chore: don't import Set.indicator in Topology.ContinuousOn

This is a first step towards not depending on algebra in basic topology

So the issue here is that One counts as algebra, unlike Zero which is fundamental?

No, both count as algebra. What makes you think otherwise?

So the issue here is that One counts as algebra, unlike Zero which is fundamental?

No, both count as algebra. What makes you think otherwise?

Well, Zero's in Init.Prelude now

Ah sure, but Algebra.Group.Indicator doesn't just import One. It imports all the basic algebra hierarchy.


tayga: init at 0.9.2

Motivation for this change
tayga
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg eval

@GrahamcOfBorg build tayga

@GrahamcOfBorg build tayga

Thanks @ryantm

@GrahamcOfBorg build tayga

@GrahamcOfBorg build tayga

Thank you!


secure upload for FTP servers with broken configs

@christophschlosser: I create a new issue, becuause the previous topic was bad
I found a solution to use SSL with broken configs, if e.g. CN of the cereficats not matchs to hostname.
the error like Certificate verification: subjectAltName does not match ‘domian.tld’  may be supressed.
its occure often, if the provider use a widcard sertficate, and/or if isn't possible the FTP server to configure. a self signed cert has the same behavior.
its possible with the splitting of the SSL params to  secure and verify. look at:
https://github.com/servusoft/drone-ftps/commit/1e86957f100fc0f5edaf9785079cf4946c89e9d3
more sense makes a import of certs or a fingerprint of certs, but its a little complicated.
with a additional parameter --verbose its get feedback about transfered files.
I can make a PR, if its Ok.

Feel free to do so

done. now with docu.
https://github.com/christophschlosser/drone-ftps/pull/4


Fixed possible nullref in tests

Closes ppy/osu#1781 .
As mentioned there, this is only a quick fix for a different potential issue:
Since the GetContainingInputManager call relies on parent accessors, it can return null if this is removed from the object tree before the call happens (even though you would usually expect a result).
Not sure if it's necessary (since most of the time it won't be a problem), but we could also return some kind of dummy object that replaces all calls with no-ops instead of null-checking.

There was a potentially more dangerous effect of this than just GetContainingInputManager. I've isolated the root of the problem in the referencing PR.


ISSUE: BE599 locks not notifying on events

Describe the bug
FE599 locks --> When locking/unlocking via code and/or manual, no notify events are being triggered and sent to mobile device.
Works fine for BE649ZP locks
Environment (please complete the following information):

Z-Wave integration name: zwaveJS
Lock make and model: FE599

Logs
Paste your error logs here.
Screenshots
none available to show

have factory reset both FE599 locks, then erased all codes.
excluded and re-included to HA.... even removed and reinstalled to keymaster.
then programmed via HA using the lovelace card all new codes.   These work to lock/unlock the door lock.
If I use the goto the scripts and manually trigger a lock reset, it will produce a notification to my device, so I know the scripts work.
The locks for whatever reason(s) are not triggering the scripts.

Make sure the lock's producing notifications first:
https://www.home-assistant.io/integrations/zwave_js/#node-events-notification

noticed I have a lot of these stacking up...

No idea what that is.

its coming from keymaster attempting to send notifications out, but something is holding them up....
not sure how to make them release either, they are read only.
I just rebooted my host (not just a HA restart) and they are still there

My notifications show up where they should.

agreed... but these are in the entities tab (search your entities for 'persistent').   I get them in that location also.

Nothing shows up.

might be a bit before I pick this up.... just applied the latest update for Z Wave that HA was broadcasting v0.1.59 and now my controller is no longer responding.

UPDATE:   Looks like a few others were bit by this update, luckily I had an full backup from 12am, so performed a partial restore of this addon, so I'm 1 step forward --> 5 steps backwards at the moment.

Back on track from that detour...  had to factory reset everything, flush keymaster, few system reboots.
have all 3 locks working with codes.
BE649ZP (frontdoor) notifies perfect
FE599 (garage and pantry locks) do not notify at all.
I'm able to test notifications by going to scripts and manually triggering the 'reset_lock' script...

This will pop up on my phone (top alert) and others are from the front door testing.

Make sure the lock is emitting notifications first:
https://www.home-assistant.io/integrations/zwave_js/#node-events-notification

@firstof9   was there a specific part of this document you are wanting to implement?

if possible, a quick bullet rundown of how to use this section of the UI,   this would be my first time using events

This is all I get from that document, I'm willing to  provide more content/output, but I need a little more guidance from you in order to understand this better....

as a side note, I brought in my alarm sensors for the door (front) and (garageinterior) and plugged them into keymaster.   These triggered notifications to when the door was open/closed, but still nothing for when someone inputs a code and/or manually unlocks the FE599 locks.
**Had to disable the door open/close notification as it was randomly alerting the door was closed multiple times from the automation included in keymaster.

Do the "listen to events" then go lock/unlock your FE599, if you see no events, keymaster has nothing to pickup to relay on.

checking in to see if you had a few min to explain more on the "lock is emitting notifications first" and how to test this for you.

well that was easier than I expected...   nice to know another part of HA.  (THANKS!)
Only my BE649ZP fired zwave messages.
Neither of my FE599 locks produced output

Something to add on this...
I have a GE wall wart/switch, this operates in S0  (same as the FE599 locks)....
It also does not report on the events.
The BE649ZP is S2 and it reports.
I will have a upgrade wall switch to try this test on again, but my hunch is Z-WaveJS event listening is not setup to listen to S0 events (maybe because they spew in large amounts?)

I will have a upgrade wall switch to try this test on again, but my hunch is Z-WaveJS event listening is not setup to listen to S0 events (maybe because they spew in large amounts?)

No it doesn't work like that.
Next step is to monitor the ZwaveJS Log while you cycle a log and see what it's reporting.

Yes, but by default they are disabled.

Go ahead and enable them and select them in the keymaster config.
ZwaveJS must not have an alarm mapping setup for this lock.

ok those are enabled...

....and selected in the config

doing a quick restart as Slot 4 has now started acting up (showing Adding...) for the garageintdoor .

all slots are now connected.... went to garageintdoor and manually unlocked/locked it, also entered a code.
nothing is sent for a notification after enabling the 2 sensors.
anything else that could be tried?
do you know of anyone using the FE599 and getting alerts/notifications?

Can you confirm those sensor values are changing?

yes they appear to be changing

Does the alarmType change when you manually lock/unlock and lock/unlock from inside HA?

it does not.
I have rebooted a few times...
alarmLevel is now 2
alarmType is 16
unsure what caused it to change from 3 to 2

Normally that would be the userCode slot that unlocked the door via the keypad.

At this point I'm leaning towards an issue with the lock itself, in regards to the notifications. The issue is beyond the scope of the keymaster integration.

So you think that I have two defective locks that are brand-new?
Pantry Lock
Garage lock
Both are Fe599

Firmware wise, it's possible, but again, not really in the scope of keymaster.

I suppose we stick a pin in this until others experience the same thing.   Thanks for showing me a few new things.

I have a 3rd FE599 coming to me tomorrow, curious to see if it behaves the same.   Would be highly coincidental for three in a row to act the same.

You could always watch the zwavejs logs as well, set to silly or debug level and toggle one of the locks and see what the driver's seeing.

So added the 3rd NEW Schlage FE599 lock this morning.
I'm willing to put all my $$$$ on this that I do not have 3 defective locks.
I'm not saying keymaster is at fault, perhaps something in the Z-WaveJS server is not acknowledging the signals being sent from the lock to the server?    I'm not sure where to continue on this venture to get help.    I'm also willing to bet other users out there with FE599 locks will experience the same thing..... so much so, I would have no issues going to HD/Lowes and buying x10 more of these locks and pair all of them to prove all x10 locks will not send out notifications.
As a side note, getting a notification is a "minor" detail for me  (it would be nice to have)....
so in the meantime, we will make due with the functinons that keymaster is proving today and leave it at that.
Welcome to close this as "unresolved".   Maybe someone else will come across this and pick up the torch.

Like I said you'd have to check the driver log from zwavejs to know for sure.

that is something I will need to learn more about, guessing that is on the host system instead of the docker container running Hassio

In HA go to Settings (the cog icon) -> Devices & Services -> Configure on ZwaveJS
Click the Logs tab at the top. Keep that screen up and go cycle a lock, this will be the driver logs from zwavejs.

Subscribed to Z-Wave JS Log Messages…

Is this from physically manipulating the lock or via the lock/unlock in HA?

Did some digging, found this table of alarm codes for your lock:

I'll double check with zwavejs to see if the mappings are there and if not get them added so your notifications work as expected.

Nah if the mapping's missing, this will have zwavejs send the notifications like the other locks, and it will just start working in keymaster.

I'll see about a work around in keymaster at this point.

how many beers you need for this?
btw, I just got my S2 Z-Wave Repeater installed... so one less S0 device to worry about.

None of your devices outside of your locks should be using S0, and even then I usually recommend S2 locks :stuck_out_tongue_closed_eyes:

I updated to Keymaster v0.0.80 today which has the fix for this issue. Going through the issue, I enabled the sensors for alarm level and alarm type for my FE599 lock as well. I can see these sensors change appropriately based on the lock code that is entered. I also updated the Keymaster configuration to point to these sensors:

However, my notification script is still not firing when codes are used that have notifications enabled.
I do have all of this working with another lock in Keymaster, so hopefully I haven't made any dumb mistakes here, but I can't rule it out.
Is there any extra steps I need to take upon update to get a FE599 lock to work?

For some reason the event doesn't fire for these locks, I don't know why at this time.


fix: rewrite "RequestWithCredentials" to a constructor

Released: v0.18.1 🎉
This has been released in v0.18.1!

📄 Release notes
📦 npm package

Make sure to always update to the latest version (npm i @mswjs/interceptors@latest) to get the newest features and bug fixes.

Predictable release automation by @ossjs/release.

Released: v0.19.3 🎉
This has been released in v0.19.3!

📄 Release notes
📦 npm package

Make sure to always update to the latest version (npm i @mswjs/interceptors@latest) to get the newest features and bug fixes.

Predictable release automation by @ossjs/release.


Wagtail items in menu with defined names instead autogenerated

Is your proposal related to a problem?

Well i have a problem with menu items in Wagtail. In my installation i am doing many things with menu and menu items - for ex. i need to remove some default items or move them to another menu.
Please take a look at this eample when i need to remove Snippets from "main menu". I just don't want to recreated the whole menu - just remove one item.
@hooks.register('construct_main_menu')
def hide_snippets_menu_item(request, menu_items):
    menu_items[:] = [item for item in menu_items if item.__class__.__name__ != 'SnippetsMenuItem']

OK... Why i did that? There is a "name" property for "item" menu elements... but some of them are defined. like for images:
@hooks.register('register_admin_menu_item')
def register_images_menu_item():
    return ImagesMenuItem(
        _('Images'), reverse('wagtailimages:index'),
        name='images', icon_name='image', order=300
    )

I hope you see param "name" with "images' value.
But for "Snippets" there is no defined name
@hooks.register('register_admin_menu_item')
def register_snippets_menu_item():
    return SnippetsMenuItem(
        _('Snippets'),
        reverse('wagtailsnippets:index'),
        icon_name='snippet',
        order=500
    )

so "name" is automatically generated from _('Snippets'), and lower-cased.... so this "menu item" name will be "snippets" - great? No - because it will be named "snippets" if user has "default" or "english" language preference. Well for polish this "menu item" will be called "snippety".
Back again
So if i would like to remove "Images" from menu it's easy as
@hooks.register('construct_main_menu')
def hide_images_menu_item(request, menu_items):
    menu_items[:] = [item for item in menu_items if item.name != 'images']

because "ImagesMenuItem" has defined "name". But for "Snippets" i do not know what name will be.
What i've tried?
Yes i could "Compare" generated "menu item" name with "auto generation" hack like so:
@hooks.register('construct_main_menu')
def hide_snippets_menu_item(request, menu_items):
    menu_items[:] = [item for item in menu_items if item.name != _('Snippets').lower()]

but i doesn't work either. Why? Because hook register_admin_menu_item is run only once when menu is generated but hook construct_main_menu is run on every request - so "menu item" names are generated once... and they can't be compared in function which run's on every request because "language" may by changed.
Describe the solution you'd like
I believe the easiest non-breaking solution (at least for someone who does not made any extreme advanced changes in menu system) is to add "name" to every existing "MenuItem" registered in Wagtail System. For the "main menu" i think only "Snippets" are lack of "defined" name. But the same problem is for "register_settings_menu_item" which i think neither has defined menu name.
Does it make sense? If so i could prepare a Merge Request.

Hi @Quadric - thanks for the report. Yes, I'd be happy to accept a pull request that consistently adds name attributes to the built-in menu items.

Fixed in #10270


JetFire does not provide a mechanism for using client side certificates

More of a suggestion than a issue, I needed to use client side certificates, the way I got around this was to create a dictionary property on JFRWebSocket called additionalOutputStreamProperties which is then enumerated over applying the setProperty:forKey: for each entry to the output stream, adding something like this to JetFire would make it easy to handle any niche use case.

Agreed this is the feature request. I believe this is related to the same request we got on https://github.com/daltoniam/Starscream/issues/271

I there any progress on this?


Win10 cygwin64 building fail

Environment：
win10 x64
cygwin64 3.0.6-1

Current Behavior:
Open Cygwin Terminal and Type the following Codes:
git clone https://github.com/tesseract-ocr/tesseract.git
git clone https://github.com/DanBloomberg/leptonica.git
cd leptonica
mkdir build
cd build
cmake ..
cmake --build .
cd ../
cd ../
cd tesseract
mkdir build
cd build
cmake .. -DLeptonica_DIR=/pkg/leptonica/build
Configuring tesseract version 4.1.0-rc1-254-g3c734e...
C++11 support enabled...
-- Found LibArchive: /usr/local/lib/libarchive.dll.a (found version "3.3.4")
-- Looking for include file dlfcn.h
-- Looking for include file dlfcn.h - found
-- Looking for include file inttypes.h
-- Looking for include file inttypes.h - found
-- Looking for include file limits.h
-- Looking for include file limits.h - found
-- Looking for include file malloc.h
-- Looking for include file malloc.h - found
-- Looking for include file memory.h

cmake --build .
....
/pkg/tesseract/src/ccmain/paragraphs.cpp: In the function ‘void tesseract::InitializeRowInfo(bool, const tesseract::MutableIterator&, tesseract::RowInfo*)’:
/pkg/tesseract/src/ccmain/paragraphs.cpp:2458:10: error：‘isascii’ not declared in this scope
          isascii(text[trailing_ws_idx - 1]) &&
          ^~~~~~~
make[2]: *** [CMakeFiles/libtesseract.dir/build.make:615：CMakeFiles/libtesseract.dir/src/ccmain/paragraphs.cpp.o] error 1
make[1]: *** [CMakeFiles/Makefile2:105：CMakeFiles/libtesseract.dir/all] error 2
make: *** [Makefile:117：all] error 2

For cygwin64  use autotools.

I think we may put conditions in cmake to fail when unsupported platform is used.

I tried to reproduce this, but could not because Cygwin only has an older version of cmake:
$ cmake ..
CMake Error at CMakeLists.txt:11 (cmake_minimum_required):
  CMake 3.8 or higher is required.  You are running version 3.6.2

I was able to reproduce problem with cmake and cygwin I plan to fix it after 4.1 release (there is some consolidation with cppan build)
IMO we need to decrease required version of cmake (to 3.6?), but I remember correctly it will touch c++17 detection....

Why cygwin at all?
Tess is perfectly fine with MSVC.

IMO cygwin is most fastest/easiest solution if somebody wants to have linux tools on Windows (including shell for training scripts).  On other hand it provides most slowest compiling process I've experienced. So if somebody just want to make quick test and build the latest tesseract it could be reasonable option. For such case installing MSVC colossus is no option (and community version does not run in some corporate accounts/environment)
Anyway it depends what user need. Definitely there are more options for on Windows (mingw, clang, intel c++, MSVC...)  and it does not seems like a big issue to support them in cmake.

I'm asking because people are still trying to build tess+lept manually and skipping most of dependencies on such setups (win, cygwin), so they get wery limited even maybe now working builds.
CMake could take deps unix-style with pkg-config on cygwin, but not on win.
Hard way is to build all deps, force things to use each other and so on.
Instead it's possible to 1) combine cmake with sw, 2) use only sw, 3) combine cmake with cppan (working, but deprecated), 4) use cppan only (working, but deprecated too).

There is a community member who packages tesseract for cygwin. Search the
forum for contact info. I am sure he will build new version when released.
On Tue, 25 Jun 2019, 19:42 Egor Pugin<EMAIL_ADDRESS>wrote:

I'm asking because people are still trying to build tess+lept manually and
skipping most of dependencies on such setups (win, cygwin), so they get
wery limited even maybe now working builds.
CMake could take deps unix-style with pkg-config on cygwin, but not on win.
Hard way is to build all deps, force things to use each other and so on.
Instead it's possible to 1) combine cmake with sw, 2) use only sw, 3)
combine cmake with cppan (working, but deprecated), 4) use cppan only
(working, but deprecated too).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tesseract-ocr/tesseract/issues/2379?email_source=notifications&email_token=ABG37I6SUKMJMHEWGXXJXKTP4IRVJA5CNFSM4HEDRW2KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYQMDGQ#issuecomment-505463194,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABG37I3ZMEP7AB3EC6JVCCTP4IRVJANCNFSM4HEDRW2A
.

It is great to have cppan/sw especially because of training tools. But a lot of people are using vckpkg. Or cross-compiled version from linux. Some other peopple suggest to use WSL.
If you need to integrate tesseeract to other project you do not need to care much about other dependencies - you can open image standard way (e.g in python, or QT, or opencv)
OpenCV use cmake and it integrate tesseract/leptonica (I do not think they will integrate sw or cppan build).  Of course there should be some default/preferred way which is at the moment autotools or cppan/sw on windows.

I was able to build the recent tesseract code with the latest cygwin and autotools on windows 64bit:
$ cygcheck -c cygwin
Cygwin Package Information
Package              Version        Status
cygwin               3.2.0-1        OK

$ uname -r
3.2.0(0.340/5/3)

$ c++ --version
c++ (GCC) 11.2.0

cmake build in the same environment failed...


Research Animation libraries

In addition to looking into the Web Animations API, it might be good to know about these popular libraries:

Greensock is the de facto standard for animations and often referred to by professionals, even when talking about the Web Animations API: https://greensock.com/ - its open source but has a commercial version as well
Anime.js is a relatively new but neveretheless very popular open source animation library that might be good to know about: https://animejs.com/

Another option is to just use plain css in combination with styled-components or plain stylesheet Javascript apis to manipulate the transforms. I think we should probably gather some experience with the vanilla javascript dom and cssom APIs  to learn more about how animations work under the hood and what needs we have to use a higher level library which might help pick a library where it's useful and not use one where it's not needed.

I think we can close this task for now and create a new one once we have more hands on experience.

https://www.mediaevent.de/javascript/css-animation.html


StaticFiles middleware allocates 64kb buffer per file on windows

Some allocation data collected from music store (using jmeter stress client):

Win32FileStream is allocating a 64kb buffer every time it's used.
This isn't necessarily bad, I just wanted to record the data point

Related discussion https://github.com/dotnet/coreclr/issues/2223

@rynowak anything actionable on this, or did you want to track it for more investigation?

Just logging/tracking it. We haven't done much testing yet with static files so I didn't want to lose the data point.

This was fixed by https://github.com/aspnet/FileSystem/pull/216


Extension blocked in Microsoft Edge

The extension is blocked in Microsoft Edge and says it contains malware. I am unable to enable the extension.

Probably same as #72
edge emailed me that they removed it but strange that it's still listed but says it contains malware.  In any case, I'm currently working on re-uploading it to the chrome+edge stores, but I need to upgrade from MV2 to MV3 since new uploads need to be MV3.  Should be ready in a couple days, if not today.


No provider for Router Error

I followed the instructions by adding Ng2BreadcrumbModule and BreadcrumbService to AppModule and then added the BreadcrumbService to AppComponent.
However, when running the app I get an error:
EXCEPTION: Error in ./AppComponent class AppComponent - inline template:0:45 caused by: No provider for Router!

It sounds like your not importing the router into your app..? Otherwise no idea..

same error here, and i definitley import the router into my app...


Update to upstream cypython branch

Since it seems there is not a need for a branch on your fork, I thought it might be nice to pin instead to one of the version branches in the upstream repository.
Still to do: I think we might need to update the CI cache key to the current commit hash of the submodule.. but I might need to think about how best to do that, and wanted to run the idea of moving to upstream first.

@benbrandt I'd be happy to switch to the upstream repo, but my understanding is that upstream supports neither shared libraries nor TCP/UDP sockets for WASI, hence my patch: https://github.com/dicej/cpython/commit/118e9d8eeabb6345d57295f6cec1616694eacbc2
Until both of those features are available upstream, I think we'll either need to keep pointing at my fork or else check the patch into this repo and apply it as part of the build process.

@dicej ah ok I somehow missed where you had that commit in your repo. No worries


The editor doesn't work in FF

I try to use ACE editor in complex card.
I have an error
TypeError: this.createShadowRoot is not a function
How can I fix this?

According to https://github.com/webcomponents/webcomponentsjs#releases, you should try to include webcomponents.js, as the lite version doesn't include polyfill for shadow dom.

@vashchenkov did it help?

@vashchenkov  I hope the above solved your problem, if not, feel free to re-open.


PseudoPositioner documentation and examples

This is at least done partially, though there is definitely room for improvement - closing for now.


Set up continuous deployment

Ideally we would have a github action that can be triggered and will create a new release on github with an installer. We (Ace Centre) can then sign those installers, although that has to be done manually as we have to use a physical key in the process.
We also want it to be easier for users to update. It doesn't have to be automatic but they should be able to update to the latest version easily.
This maybe already works but it just needs checked

Note for later is that some software that could be used is this. https://github.com/dennisvang/tufup

@sjjhsjjh check out the workflow at https://github.com/AceCentre/FaceCommander/blob/main/.github/workflows/windows-build-release.yml - basically it builds the whole thing and installer. I think we should ditch the portable - I didnt really test that and if Im honest I think it will break because of the filepaths that I put it to local for it in your LOCALAPPDATA type dirs.
But its largely there. But yeah - tufup looks good. I looked into that.

My gut feeling is to say yes to that. Having effectively two builds - or two build steps is a bit of a hassle.

Thanks Will, I looked at the yaml and can see that it builds the executable and installer. It's triggered by pushing a tag with a particular format.
I don't see how to fit in the signed installer piece that @gavinhenderson mentioned.

Ahh you don't

Basically let GH Build and release (and maybe mark as preview)
Someone in our office has to then grab the installer exe
Sign it
Then reupload (and we manually  take off the preview).

Our signing process is a bit of a pain as we have a physical key that needs to sign it.

Hi, I had a bit of a think and reckon these are the required pieces.

For Ace Centre as the app developer.

Workflow to create one or more unsigned installers when a tag with a particular format is pushed, which is already done.

For the end user.

Indicator in the app that will highlight the availability of a new release.

It could appear as a new menu item for example, only if there is a new release available.
Only new signed releases are in scope of the indicator.

Option to download the latest signed installer within the app.
Option to run a downloaded installer within the app.
Facilitate opening the releases page in the browser.

Releases page is here https://github.com/AceCentre/FaceCommander/releases It's empty at the moment but see the Grimassist page for an idea of what it looks like with some releases https://github.com/acidcoke/Grimassist/releases

On balance I don't think we need to implement any integrity checking. We can rely on the operating system and signing to do that.
The highlight-download-run pieces represent the most common use case, which is to install a new release of the app. The releases page piece supports less common use cases such as these.

Beta or early access programme.
End user wants to install an old version.
End user wants control of where the files get downloaded.
End user wants to have multiple versions installed.

What do you think?

Yeah. I was having a good look at tufup.  Although I could be wrong. I’ve only skim read this (/ had a go at converting their power shell script for Mac https://github.com/dennisvang/tufup-example/pull/26#issuecomment-2053740246 ) see https://github.com/dennisvang/tufup-example/tree/master/src
And this for the init scripts etc.
https://github.com/dennisvang/tufup-example/tree/master
this is where electron is better.
Your idea seems sound to me Jim. The one downside is it won’t force updates - but then
Our users are used to this approach in grid etc . @gavinhenderson ?

Thanks Will, Having multiple types of installer seems to be quite common. So if MSI will support some use cases that .exe doesn't then I don't see a problem.
I'm unsure about forcing upgrade. It's OK if FaceCommander remains usable while the upgrade is in progress. Otherwise I think users need to control when the upgrade happens.

@sjjhsjjh
I really like that approach! It moves a lot of the hard work out of the app while keeping the user experience really smooth. I also like that as you highlight its it will still support the other less common user journeys.
I say go for it! :)

Hi, Here's an interim update for today.

The version number now has a single source in a file here.
https://github.com/AceCentre/FaceCommander/blob/v0.6.2.test_1/assets/Version.ini

That source is used every component that needs a version number, the installer builder, the GitHub Releases section, and the app UI.

There's a new build workflow here.
https://github.com/AceCentre/FaceCommander/blob/v0.6.2.test_1/.github/workflows/windows-build-version.yml

It's substantially a copy of the previous workflow.
It's triggered by pushing to the version file.
It adds the GitHub tag programmatically.

At CoP the new build is working. I have tested the .exe installer. Sorry, I had to do a lot of commits to try things out in the workflow.

Never apologise about the number of commits. You want to see the number of commits (and timespan) I have on some of these GH workflows. Nice one Jim

Note to self.
https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#list-releases-for-a-repository

This is brilliant work @sjjhsjjh!
Its probably already on your radar but it would be good to have the process documented briefly in the README. Mainly thinking about myself coming to this project in a few years and needing to remember how to do a release 🤦♂

Hi, Here's another interim update.

I'm adding an UpdateManager singleton.
So far, it can launch a thread to get release details from the GitHub API.
The GitHub API looks simple enough but I ran into difficulty downloading an asset, i.e. an installer. The GitHub API redirected a couple of times and then threw an HTTP 400. I don't know why.
I just had a quick go using the Requests library, see https://docs.python-requests.org/en/latest/api/ , instead of the Python built-in HTTP client. That worked first time downloading an asset.

So I'll be adopting that library into FaceCommander in due course maybe tomorrow.
After that my plan is to add some Tk variables to the UpdateManager. That seems to be the correct way to have an observable state that can be updated from a download thread and then reflected in the UI.

Awesome work @sjjhsjjh !
We are going to have one of the best update experiences around!

At close of play I have proof-of-concept code pushed for

download an installer exe from GitHub.
launch the installer from the main app.
the installer remains open when the main FaceCommander app terminates.
observable status message.

So, bit of a hiccough encountered today.
The observable status message is true but isn't multi-threaded. Specifically, a tkinter.StringVar or IntVar cannot be set from a thread other than the main thread that runs the UI. That seems to mean the app will need to poll the UpdateManager singleton's state from the tk mainloop.
One place there's already some polling is in the MainApp declared in the face_commander.py file. I can add UpdateManager polling there, unless there's some reason not to or a better place?

Hi, Update for today is that this branch now has these features.

Last release check time displayed on the About page.
About page display updates when releases information is checked, which happens on a thread.
Elective check-now option, also in the About page.
Diagnostic CLI switch to slow releases information retrieval, for testing the above.

Remaining pieces are as follows.

About page displays installer download progress and option to launch a downloaded installer.
Evocative description of the last update check time, like "2 minutes ago".
Display published time for the current running release.
Block preview releases.
Add another release or two for testing.

Hi, These pieces are now done on the branch.

About page displays installer download progress and option to launch a downloaded installer.
Display published time for the current running release.
Block prereleases, and there's a command line switch to override that.
Added another prerelease for testing.

This piece isn't done.

Evocative description of the last update check time, like "2 minutes ago".

Evocative descriptions are done.

Awesome work @sjjhsjjh !
I have created a PR from your branch so I can easily look over the code etc: https://github.com/AceCentre/FaceCommander/pull/24
I'll have a quick play around and then merge into main unless I have any issues, which I doubt I will.
My plan this week is to try and get a handle on the admin stuff then once we have all that done we can start getting users onto it and then we can just iterate from there (thanks to your updating mechanism)

Thanks Gavin, I'm not sure myself that it's ready but I recorded a video here.
https://youtu.be/dyTzdQpYpmM?si=XTnxKcCubCJHFC2a
If that all looks ok I'll write the developer documentation.

Thanks Gavin, I'm not sure myself that it's ready but I recorded a video here.
https://youtu.be/dyTzdQpYpmM?si=XTnxKcCubCJHFC2a
If that all looks ok I'll write the developer documentation.

Wow. That's stellar Jim!


Improve learn section

This PR is to update the Accounts page according to the feedback from @imesh94

Fix configuration issues

Fixed the from this https://github.com/wso2/docs-ob-toolkit-cds/pull/20 PR


Implement multi-siam for segmentation

https://arxiv.org/pdf/2108.12178.pdf

Hi ,
My name is Wansh Singh and i am an absolute beginner to this open source contribution stuff and want to begin my journey by working on this issue. So i just want to get assigned for this issue and i also need a quick guide on what i have to learn and use to solve these issue.
So, @ebursztein can you provide me some more resources regarding  this?

@ebursztein please i want to know whether i will be assigned for this issue or not as i am really desperate to contribute

Hi @Wansh619, let me look into it and see how  we might either add it to the existing Contrastive model or if we might need a separate model. At first glance, it looks like they based their base model on BYOL, so we likely can use the SimSiam algorithm in the tf.sim contrastive model as it also uses the pairwise cosine distance and will remove the need for BYOL's momentum component.
However, I'll have to look into it more to see how we "extend the cross-view consistency framework to multi-instance circumstances". What are your thoughts?

Actually i am very new i this open source stuff and i want to have a hewd start so i thought i should start with a easy issue and ask for help in the community as i am very very new to this .so can you guide me taht what i have to learn for this contribution?

Typically we recommend that you fork the development branch and share a design proposal in the issue or submit a PR.
See issue #92  for a good example that implemented cross-batch memory support.


vcf2db converting string values to float

Hi Brent,
I'm encountering the following issue.
When creating a db from a vcf file annotated using vcfanno, I get the following error:
sqlalchemy.exc.StatementError: (exceptions.ValueError) could not convert string to float:...
This error is cause by values such as VEST3_score=0.123,0.122 in the vcf, even though the header states it should be treated as a string value. Did any logic in parsing these values change recently? I've been using dbNSFP and vcf2db for quite some time now, and I hadn't encountered this issue yet.
ref bcbio issue: https://github.com/bcbio/bcbio-nextgen/issues/2511#issuecomment-423912677
cheers
M

I'll have a look but can you share a small vcf to recreate?

Sure, you can find it here.
FYI, I'm using both the latest bioconda vcf2db and geneimpacts
# Name                    Version                   Build  Channel
vcf2db                    2018.01.23               py27_0    bioconda
geneimpacts               0.3.3                    py27_0    bioconda

Thanks for looking into this.
Cheers
M

Hi Brent,
Did you find time to have a quick look at this? As far as I've found, the issue comes from dbNSFP annotations made by vcfanno.
Thanks
M

Hi Brent,
Just a little bump, thanks for looking into this!
Cheers
M

this is caused by:
##INFO=<ID=gnomAD_genomes_AF,Number=1,Type=String,Description="calculated by first of overlapping values in column 217 from /home/galaxy/bcbio-dev/genomes/Hsapiens/hg38/variation/dbNSFP.txt.gz">

rather than first, you could use self. vcf2db tries to convert any field that looks like an allele frequency to a float. and you have empty values as: "."
I can probably add more logic to deal with this, but saving af columns as strings seems the root issue and is upstream of vcf2db

actually, it was a trivial fix so I just made it.
vcf2db is turning into a bunch of checks that really are a consequence of 1) abusing vcf format by putting what are obvious numeric values into strings 2) guessing at what the user wants 3) trying to shoe-horn VCF into a database.
I would suggest to make sure the types in you VCF are exactly what you want, so, e.g. gnomAD_genomes_AF is representing something that's actually a float, so it'd remove downstream problems if it was used as a float (e.g. by using self in vcfanno).

Hi Brent,
Thanks for the fix! I thought that self was only to be used with vcf files? dbNSFP is a tabular file, so I didn't know that would work.
I'll play around a bit with this.
Thanks again!
Cheers
M

I think it might work since dbNSFP has (I think) ref and alt columns.

hmm. good to know. thanks for looking into it. hopefully the fix above will be good enough for now.


Core db schema patch to support longer assembly names in the mapping_session table.

Requirements

Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion;
Review the contributing guidelines for this repository; remember in particular:

do not modify code without testing for regression
provide simple unit tests to test the changes
if you change the schema you must patch the test databases as well, see Updating the schema
the PR must not fail unit testing

Description
Using one or more sentences, describe in detail the proposed changes.
Increased length of old_assembly and new_assembly columns in the mapping_session table in the core databases.
Use case
Describe the problem. Please provide an example representing the motivation behind the need for having these changes in place.
Xenopus tropicalis assembly name would appear truncated as "Xenopus_tropicalis_v" in the current database schema for e100.
Benefits
If applicable, describe the advantages the changes will have.
Longer assembly names would be supported.
Possible Drawbacks
If applicable, describe any possible undesirable consequence of the changes.
More space would be required.
Testing
Have you added/modified unit tests to test the changes?
No. I think the existing unit tests should work.
If so, do the tests pass/fail?
N/A.
Have you run the entire test suite and no regression was detected?
No.

I'm sorry, I just noticed the schema_version for compara has already been updated for 101 and we don't want that in release/100...
I'll cherry pick and redo the test db patching.
Closing and will be submitting a PR

I'm sorry, I just noticed the schema_version for compara has already been updated for 101 and we don't want that in release/100...
I'll cherry pick and redo the test db patching.
Closing and will be submitting a PR


[Extensibility Bug] OnBeforeUpdateTrackingSpecification - wrong variables

Hi there,
there is a strange bug with the event publisher OnBeforeUpdateTrackingSpecification in the Tracking Specification table
    procedure InsertSpecification()     var         TrackingSpecification: Record "Tracking Specification";     begin         Reset();         if FindSet() then begin             repeat                 TrackingSpecification := Rec;                 TrackingSpecification."Buffer Status" := 0;                 TrackingSpecification.InitQtyToShip();                 TrackingSpecification.Correction := false;                 TrackingSpecification."Quantity actual Handled (Base)" := 0;                 OnBeforeUpdateTrackingSpecification(Rec, TrackingSpecification);                 if "Buffer Status" = "Buffer Status"::MODIFY then                     TrackingSpecification.Modify()                 else                     TrackingSpecification.Insert();             until Next() = 0;             DeleteAll();         end;     end;
    [IntegrationEvent(false, false)]     local procedure OnBeforeUpdateTrackingSpecification(var TrackingSpecification: Record "Tracking Specification"; FromTrackingSpecification: Record "Tracking Specification")     begin     end;
The variables on the publisher have do be switched.
It makes no sense to do anything on the "Rec" but there are some use-cases where you want to modify the TrackingSpecification that will be saved.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


await sheet.addRow() function turn into row.save()

HI,the question is my sheet.addRow() function will update one of the row in my sheet
the api works in old version.However,when I trying to update to the version(3.0.8), the addRow method always update one row in my sheet
some code
const sheet = doc.sheetsByIndex[4]
const newrow = {
        key: `${value}`,
    }
const addNewRow = await sheet.addRow(newrow);

all method like save,get is working,but the addRow method turn into save even I didn't call getRow in this function,and it will automatically choose one row and update the value.
is there anywhere I can fix this problem?Thanks!

I'm not sure I fully understand your question but this may help:
When you call sheet.addRow, by default it uses the "overwrite" method, meaning it will look for the first empty row and fill that one in - adding an extra row to the sheet if all rows have something in them. If it's overwriting a non-empty row, perhaps it could be because you are doing other things to the sheet at the same time?
If it is overwriting an empty row, and you just want it to insert a new row instead. You can use the insert option if you want it to add a new row to the sheet instead.
See https://theoephraim.github.io/node-google-spreadsheet/#/classes/google-spreadsheet-worksheet?id=fn-addrow
sheet.addRow({ col1: 'something' }, { insert: true })


Eliminate causer interface in favour of errors.Unwrap

How to categorize this PR?

/area dev-productivity
/kind cleanup technical-debt
What this PR does / why we need it:
Eliminate caused interface and rather use Golang`s native error unwrapping. Ref : https://pkg.go.dev/errors
Which issue(s) this PR fixes:
Fixes https://github.com/gardener/gardener/issues/6211
Special notes for your reviewer:
Release note:

NONE

/test all

There is one more usage of the causer interface in the retry package: https://github.com/gardener/gardener/blob/eef61292eb6d9abbce877f11c7179fa491897ecb/pkg/utils/retry/retry.go#L117
Should we also get rid of that one?

/assign

Can you please adapt this doc string as well?
https://github.com/gardener/gardener/blob/2f6567da34b2d70ef8288e9c0cb10fcce19c35da/pkg/utils/errors/errors.go#L85

I don't have any other comments.

/lgtm
/approve