text:
dns-pod-service: clarify ClusterDNSWithHostNet

It's unclear exactly how this option works so clarify it.
HostNet pods using this option will use Kubelet's configured Cluster DNS servers only. If kubelet has no configured Cluster DNS then they'll log a node event Warning and use host DNS instead.

@dcbw Hey there, a gentle ping to check if you have time to address the feedback that has been left by reviewers so we can continue with this PR. Thanks!

/lifecycle frozen

@dcbw it's been a long time since no activity on this PR, do you still want to work on it?

Hello @dcbw , thank you for your contributions! However, since there has been no activity on this PR since a really long time, we will be closing it off. If you do have the bandwidth to continue making amends to the PR per the suggestions, please consider reopening it & we can resume where you left.
/close


text:
[zh] Fix bold symbol in pod-security-admission.md

Bold symbols need to add an extra space when encountering Chinese symbols

Thanks.
/lgtm
/approve

source: gharchive/pull-request

authors: LENSHOOD windsonsea

repo: kubernetes/website

license_type: permissive

license_source: github-api


text:
Docs update for Alpha JobBackoffLimitPerIndex

Docs update for Alpha JobBackoffLimitPerIndex in 1.28.
Tracking issue: https://github.com/kubernetes/enhancements/issues/3850

/sig apps

/assign @alculquicondor
For technical review.

/milestone v1.28

@sftim could you please set the milestone to 1.28 as the enhancement is merged-in?

/milestone 1.28

@sftim @alculquicondor I've added a proposal for the tasks page for the feature. PTAL.

/lgtm

@alculquicondor, would you be willing to re-review for technical accuracy? It's also OK to decline or to suggest a different reviewer.

/hold
Let me apply the nits before we merge.

/hold cancel
applied the @alculquicondor remarks.

@sftim please LGTM if it looks good to merge.

authors: Atharva-Shinde alculquicondor mimowo sftim


text:
[zh] Sync feature-gates/c*.md

Related to issue #44410
Sync 55 feature-gates/c*.md files, updated the front matters.

cloud-controller-manager-webhook.md
cloud-dual-stack-node-ips.md
cluster-trust-bundle-projection.md
cluster-trust-bundle.md
component-slis.md
configurable-fs-group-policy.md
consistent-http-get-handlers.md
consistent-list-from-cache.md
container-checkpoint.md
contextual-logging.md
controller-manager-leader-migration.md
cpu-manager-policy-alpha-options.md
cpu-manager-policy-beta-options.md
cpu-manager-policy-options.md
cpu-manager.md
crd-validation-ratcheting.md
cri-container-log-rotation.md
cron-job-controller-v2.md
cron-job-time-zone.md
cron-jobs-scheduled-annotation.md
cross-namespace-volume-data-source.md
csi-block-volume.md
csi-driver-registry.md
csi-inline-volume.md
csi-migration-aws-complete.md
csi-migration-aws.md
csi-migration-azure-disk-complete.md
csi-migration-azure-disk.md
csi-migration-azure-file-complete.md
csi-migration-azure-file.md
csi-migration-gce-complete.md
csi-migration-gce.md
csi-migration-open-stack-complete.md
csi-migration-open-stack.md
csi-migration-portworx.md
csi-migration-rbd.md
csi-migration.md
csi-migrationv-sphere-complete.md
csi-migrationv-sphere.md
csi-node-expand-secret.md
csi-node-info.md
csi-persistent-volume.md
csi-service-account-token.md
csi-storage-capacity.md
csi-volume-fs-group-policy.md
csi-volume-health.md
csr-duration.md
custom-cpu-cfs-quota-period.md
custom-pod-dns.md
custom-resource-defaulting.md
custom-resource-publish-open-api.md
custom-resource-subresources.md
custom-resource-validation-expressions.md
custom-resource-validation.md
custom-resource-webhook-conversion.md

I used the following command to check the differences between ZH and EN content for these numerous files, hoping it can help the reviewers:
for md in $(find content/en/docs/reference/command-line-tools-reference/feature-gates -name 'c*.md' | sed 's#content/en##g' | sort); do echo '######'${md}; diff content/en${md} content/zh-cn/${md}; done

/lgtm


text:
Unify BotKube commands naming

Overview
Currently, BotKube has the following list of commands:
BotKube Help

Usage:
    @BotKube ping [--cluster-name <cluster-name>]
    @BotKube commands list  (on BotKube v0.11.0+)
    @BotKube <kubectl command without kubectl prefix> [--cluster-name <cluster_name>]
    @BotKube notifier [stop|start|status|showconfig]
    @BotKube filters [list|enable|disable] [filter-name]

Description:

Cluster Status:
    - List all available Kubernetes Clusters and check connection health.
    - If flag specified, gives response from the specified cluster.

    Example:
        @BotKube ping
        @BotKube ping --cluster-name mycluster

Allowed kubectl commands list:
    - Show allowed kubectl commands as per the BotKube configuration

    Example:
        @BotKube commands list

Kubectl commands:
    - Executes kubectl commands on k8s cluster and returns output.

    Example:
        @BotKube get pods
        @BotKube logs podname -n namespace
        @BotKube get deployment --cluster-name cluster_name

    Allowed kubectl commands:
        For BotKube v0.11.0+:
            Check allowed commands with '@BotKube commands list'
        For older versions:
            Allowed commands are - get, top, cluster-info, describe, explain, logs, version, auth, api-resources, api-versions, diff

Notifier commands:
    - Commands to manage incoming notifications (Runs only on configured channel).

    Example:
        @BotKube notifier stop          Stop sending k8s event notifications to Slack
        @BotKube notifier start         Start sending k8s event notifications to Slack
        @BotKube notifier status        Show running status of event notifier
        @BotKube notifier showconfig    Show BotKube configuration for event notifier

Filters commands:
    - Command to manage filters run on K8s events (Runs only on configured channel).

    Example:
        @BotKube filters list                     Show list of available filters
        @BotKube filters disable ImageTagChecker  Disable filter
        @BotKube filters enable ImageTagChecker   Enable filter

Options:
    --cluster-name                  Get cluster specific response

You can see, that for example @BotKube notifier showconfig doesn't follow the pattern for other commands. This is something which would be great to fix.
Acceptance Criteria

Go through the list of commands and prepare final naming convention accepted by the team

For example, @BotKube commands list and @BotKube notifier showconfig - maybe it should be just one command, e.g.
Consider requiring kubectl at the beginning of the commands - to support more executors #650
@BotKube config?

Implement the solution
Support aliases for different command groups (e.g. filters -> filter)

Reason
To improve UX, we should have consistent commands naming.

Can we add the misfit /botkubehelp command to this?
Also, @lpetkov to do design review on this.

@brampling Good question - there's a separate task https://github.com/kubeshop/botkube/issues/393 but we can move its scope here as well, to form an epic issue 👍 Let me know if I should merge this.
Yes, @lpetkov help here would be much appreciated!

I propose to follow the following syntax:
@Botkube [command/verb] [optional secondary command] [--option="string"]
General commands:
@Botkube ping [--cluster="string"] - Ping a cluster
@Botkube help - Print help menu
@Botkube kc|kcc|kubectl [command] [TYPE] [NAME] [flags] - Run kubectl commands
@Botkube status  - Show running status of event notifier
@Botkube config - Show bot configuration
List
@Botkube list [filters|filter|flr] to list all filters
@Botkube list [commands|cmd] to list all commands
Enable
@Botkube enable to enable notifications in a channel
@Botkube enable [filters|filter|flr] filterName to enable a filter
@Botkube enable [kubectl|kc|k] to enable kubectl support
Disable
@Botkube disable to disable notifications in a channel
@Botkube disable [filters|filter|flr] filterName to disable a filter
@Botkube disable [kubectl|kc|k] to disable kubectl support
Edit
@Botkube edit sourcebindings

LGTM. Should we note that "kubectl" is a standard for other extensible executors? e.g.
@Botkube helm|argo|etc. [command] [TYPE] [NAME] [flags]

@lpetkov Looks good, but have 3 comments:

Missing @Botkube enable/disable notifications/notif.
IMHO @Botkube status should be @Botkube status notifications
Minor thing: I would return help on the @Botkube command (without any arguments) or some welcome message - currently we show Unsupported command error which is a bad UX IMO.
Regarding enable kubectl:

@Botkube enable [kubectl|kc|k] to enable kubectl support

Are you sure that should be possible? We don't have such functionality, and the question is how it should work. If users can enable kubectl functionality for a given channel from the channel, that means there's a security issue. Later, if we have user  mapping, then yes, that could work.

@pkosiec

In addition to @botkube enable which would do the same thing?
Why? What other status could there be?
Agreed.
Agreed, let's skip that for now. @mszostok and I were talking about it some time ago but we're not there yet.

@lpetkov

Oh, right, I didn't explain it correctly. I think instead of @Botkube enable we could have @Botkube enable/disable notifications/notifto be consistent with other configurable parts of Botkube. IMHO it will be also more intuitive with other parts of configuration you can enable and disable.

As a user, I wouldn't know whether @Botkube disable disables both notifications and execution or just one part of it. With notifications it's all clear to me.

Same as above - it would be more clear that it's about notifications. IMHO Status could mean many things:

show enabled notifications
show source bindings for current channel
show enabled commands for executor

If you add a resource name, the problem disappears (IMHO).
Does that make sense for you?

Addressing the feedback above:
@Botkube [command/verb] [optional secondary command] [--option="string"]
General commands:
@Botkube - same as @Botkube help
@Botkube ping [--cluster="string"] - Ping a cluster
@Botkube help - Print help menu
@Botkube kc|kcc|kubectl [command] [TYPE] [NAME] [flags] - Run kubectl commands
@Botkube config - Show bot configuration
Status
@Botkube status [notifications|notif]  - Show running status of event notifier
@Botkube status [k|kc|kcc|kubectl]  - Show enabled commands/verbs/resource types for kubectl for the channel
@Botkube status sourcebindings - Show enabled source bindings for the channel
@Botkube status - print event notifier status AND display a message listing all status options (listed above)
List
@Botkube list [filters|filter|flr] to list all filters
@Botkube list [commands|cmd] to list all commands
@Botkube list - list all list options
Enable
@Botkube enable [notifications|notif] to enable notifications in a channel
@Botkube enable [filters|filter|flr] filterName to enable a filter
@Botkube enable - list all enable options
Disable
@Botkube disable [notifications|notif] to disable notifications in a channel
@Botkube disable [filters|filter|flr] filterName to disable a filter
@Botkube disable - list all disable options
Edit
@Botkube edit sourcebindings
@Botkube edit - list all disable options (alternatively, run @Botkube edit sourcebindings - opinions?)

Looks good! One small question

@Botkube status - print event notifier status AND display a message listing all status options (listed above)

Just curious: what is the reason for custom behavior and not just list all the possible options here, like with other @Botkube {verb/} commands? There still will be an option to set some aliases if someone wants to have a shorter command for @Botkube status notifications.

@Botkube edit - list all disable options

I believe you meant list all edit options - but yeah, I like that it lists all possible options 👍

Just curious: what is the reason for custom behavior and not just list all the possible options here, like with other @Botkube {verb/} commands? There still will be an option to set some aliases if someone wants to have a shorter command for @Botkube status notifications.

My assumption is that most of the time most of the user will want to quickly see the status of their notifications which is the most common reason people install the software in the first place. So let's give them that and all other potential options in case they are interested in something else.

One thing we discussed with @mszostok is that in terms of consistency it would be better to have the configcommand as
@Botkube show cfg|config|configuration as that is more consistent with the verb-first approach.

source: gharchive/issue

authors: brampling lpetkov pkosiec

repo: kubeshop/botkube

license: MIT


text:
IconStatus Refactoring and Generalization

📝 Description

VMIconStatus -> IconStatus
other small fixes

/lgtm
next up move the template svg icons from kubevirt plugin to here

@metalice thanks. I resolved all the suggestions. What do you think about the data-test solution that I implemented?

@yaacov @glekner  can you please review this?

authors: glekner upalatucci

repo: kubevirt-ui/kubevirt-components


text:
Bug 2160298: Simplify YAML Switcher text to "YAML"

📝 Description
Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=2160298
Simplify the text and use the regular font weight, not the bold one, according to the design changes.
🎥 Screenshots
Before:
When the switcher is off:

When the switcher is on:

After:

@avivtur @metalice @pcbailey @upalatucci @vojtechszocs please review

/lgtm

authors: hstastna metalice

repo: kubevirt-ui/kubevirt-plugin


text:
Bug 2101394: Changing the data-test-id

Signed-off-by: Dana Orr dorr@redhat.com

📝 Description
🎥 Demo
Before:

After:

/lgtm

authors: DanaOrr yaacov


text:
Canceling storage live migration sometimes doesn't happen.

What happened:
To cancel a storage live migration, one needs to revert the changed volumes to the original values. In many cases this works as expected, and the migration is stopped. However when it fails I see the following message in the KubeVirt controller logs
{"component":"virt-controller","level":"info","msg":"Patch VMI volumes","pos":"volume-migration.go:308","timestamp":"2024-07-18T17:33:05.708791Z"}
{"component":"virt-controller","level":"info","msg":"Cancel volume migration","pos":"volume-migration.go:205","timestamp":"2024-07-18T17:33:06.128758Z"}
{"component":"virt-controller","level":"info","msg":"Patch VMI vm-fedora-datavolume status to cancel the volume migration","pos":"volume-migration.go:217","timestamp":"2024-07-18T17:33:06.128922Z"}
{"component":"virt-controller","kind":"","level":"info","msg":"Cancel volume migration","name":"vm-fedora-datavolume","namespace":"mig-test","pos":"vm.go:958","timestamp":"2024-07-18T17:33:06.340786Z","uid":"d102112a-401a-4461-a16a-f1d627e41a81"}
{"component":"virt-controller","kind":"","level":"error","msg":"Updating the VirtualMachine status failed.","name":"vm-fedora-datavolume","namespace":"mig-test","pos":"vm.go:398","reason":"Operation cannot be fulfilled on virtualmachines.kubevirt.io \"vm-fedora-datavolume\": the object has been modified; please apply your changes to the latest version and try again","timestamp":"2024-07-18T17:33:06.536526Z","uid":"d102112a-401a-4461-a16a-f1d627e41a81"}
{"component":"virt-controller","level":"info","msg":"re-enqueuing VirtualMachine mig-test/vm-fedora-datavolume","pos":"vm.go:293","reason":"Operation cannot be fulfilled on virtualmachines.kubevirt.io \"vm-fedora-datavolume\": the object has been modified; please apply your changes to the latest version and try again","timestamp":"2024-07-18T17:33:06.536574Z"}

However it seems the requeue doesn't re-run the patching operation and the migration is not canceled. This then causes the migration to complete. However this leaves the VM in an inconsistent state with the virt-launcher pod. The VM is stating the used volumes are the original (since I modified them to be the original), but the migration completed, and the virt-launcher pod is actually using the new volumes for example my test VM looks like this after canceling:
VM
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  annotations:
  creationTimestamp: "2024-07-18T13:57:44Z"
  finalizers:
  - kubevirt.io/virtualMachineControllerFinalize
  generation: 18
  labels:
    kubevirt.io/vm: vm-fedora-datavolume
  name: vm-fedora-datavolume2
  namespace: mig-test
  resourceVersion: "19739202"
  uid: 7a74e654-df96-4fb3-a1ca-3102ca0f61c7
spec:
  running: true
  template:
    metadata:
      creationTimestamp: null
      labels:
        kubevirt.io/vm: vm-fedora-datavolume2
    spec:
      architecture: amd64
      domain:
        devices:
          disks:
          - disk:
              bus: virtio
            name: datavolumedisk1
          - disk:
              bus: virtio
            name: cloudinitdisk
          interfaces:
          - masquerade: {}
            name: default
        ioThreadsPolicy: auto
        machine:
          type: q35
        resources:
          requests:
            memory: 1Gi
      networks:
      - name: default
        pod: {}
      terminationGracePeriodSeconds: 0
      volumes:
      - dataVolume:
          name: fedora-40-dv <-------------------------------
        name: datavolumedisk1
      - cloudInitNoCloud:
          userData: |-
            #cloud-config
            password: fedora
            chpasswd: { expire: False }
        name: cloudinitdisk
  updateVolumesStrategy: Migration
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2024-07-18T17:35:00Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: null
    message: All of the VMI's DVs are bound and not running
    reason: AllDVsReady
    status: "True"
    type: DataVolumesReady
  - lastProbeTime: null
    lastTransitionTime: null
    message: 'cannot migrate VMI: PVC fedora-40-dv is not shared, live migration requires
      that all PVCs must be shared (using ReadWriteMany access mode)'
    reason: DisksNotLiveMigratable
    status: "False"
    type: LiveMigratable
  created: true
  desiredGeneration: 18
  observedGeneration: 18
  printableStatus: Running
  ready: true
  runStrategy: Always
  volumeSnapshotStatuses:
  - enabled: false
    name: datavolumedisk1
    reason: 'No VolumeSnapshotClass: Volume snapshots are not configured for this
      StorageClass [kubevirt-csi-infra-default] [datavolumedisk1]'
  - enabled: false
    name: cloudinitdisk
    reason: Snapshot is not supported for this volumeSource type [cloudinitdisk]

Pod
kind: Pod
apiVersion: v1
metadata:
  generateName: virt-launcher-vm-fedora-datavolume2-
...
  labels:
    kubevirt.io/vm: vm-fedora-datavolume2
    vm.kubevirt.io/name: vm-fedora-datavolume2
spec:
...
  volumes:
    - name: private
      emptyDir: {}
    - name: public
      emptyDir: {}
    - name: sockets
      emptyDir: {}
    - name: virt-bin-share-dir
      emptyDir: {}
    - name: libvirt-runtime
      emptyDir: {}
    - name: ephemeral-disks
      emptyDir: {}
    - name: container-disks
      emptyDir: {}
    - name: datavolumedisk1
      persistentVolumeClaim:
        claimName: fedora-40-dv-new   <-------------------------
    - name: hotplug-disks
      emptyDir: {}
  dnsPolicy: ClusterFirst
  tolerations:
    - key: node.kubernetes.io/not-ready
      operator: Exists
      effect: NoExecute
      tolerationSeconds: 300
    - key: node.kubernetes.io/unreachable
      operator: Exists
      effect: NoExecute
      tolerationSeconds: 300
    - key: node.kubernetes.io/memory-pressure
      operator: Exists
      effect: NoSchedule
  readinessGates:
    - conditionType: kubevirt.io/virtual-machine-unpaused
status:

What you expected to happen:
The requeue to re-attempt to update the VM status so that the cancellation happens appropriately
How to reproduce it (as minimally and precisely as possible):
Start a storage live migration, before it finishes (like with a few Gi disk size) cancel the migration by changing the VM spec back to the original values. Watch the kubevirt-controller log and if you see the requeue the migration will not be stopped.
Additional context:
Add any other context about the problem here.
Environment:

KubeVirt version (use virtctl version): 1.3
Kubernetes version (use kubectl version): 1.29
VM or VMI specifications: N/A
Cloud provider or hardware configuration: N/A
OS (e.g. from /etc/os-release): N/A
Kernel (e.g. uname -a): N/A
Install tools: N/A
Others: N/A

/cc @alicefr

/assign

/remove-lifecycle stale

authors: alicefr awels

repo: kubevirt/kubevirt


text:
[e2e tests]: Use new MatchError form instead of boolean IsNotFound assertions

What this PR does / why we need it:
Using the new form of this matcher will provide more context in test failure error messages,
and should overall make the assertions nicer to read.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
This is how failure messages for these assertions look like today:

Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[ ] PR: The PR description is expressive enough and will help future contributors
[ ] Code: Write code that humans can understand and Keep it simple
[ ] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[ ] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note:

NONE

/lgtm

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

/sig code-quality

/approve

nit: maybe worth to add to the PR desc how it will look with the new style

authors: AlonaKaplan akalenyu codingben dankenigsberg oshoval


text:
Add block label to some more tests

What this PR does
Missed these in https://github.com/kubevirt/kubevirt/pull/13137

Fixes #
Why we need it and why it was done in this way
The following tradeoffs were made:
The following alternatives were considered:
Links to places where the discussion took place:
Special notes for your reviewer

Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[ ] PR: The PR description is expressive enough and will help future contributors
[ ] Code: Write code that humans can understand and Keep it simple
[ ] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[ ] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note

NONE

/lgtm
/approve

/test pull-kubevirt-e2e-k8s-1.31-sig-compute

/test pull-kubevirt-fossa

/cherrypick release-1.4

authors: akalenyu mhenriks


text:
[WIP] Remove relabelfrom/to and attach_queue from launcher type

What this PR does / why we need it:
Testing if we need selinux rule
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

@xpivarc Why do you think this is not needed? Has this rule been included in the default container_t policy? /cc @jean-edouard

Yes, relabelfrom & relabelto is now available in container_t.
Ok, that's good news. If this is now in container_t we might not need to use this policy at all by default.
I think there is nothing critical in it, besides Virtio-FS that needs a special policy. We can simply use this policy only with vmis that request virtio-fs.

AFAIK it was needed only because of the multiqueue. But we now handle it in the handler. I am interested to see if we need this for any other reason. If we do then we would need to consider how safe it is to remove it.

We handle the tap device in the virt-handler but not the attachment to it, afaiu.

/remove-lifecycle stale

/retest

authors: vladikr xpivarc


text:
Node removal: don't be so strict when removing things

We are currently very strict when removing things in the removal orchestration. While some cleanups deal with sensitive information, some others are not really so important. So, for example, if the motd cannot be changed, the whole orchestration will fail and the user will have to use the forced removal on that node.
This PR relaxes the removal orchestration by adding some check_cmd: /bin/true in some not-so-important cleanups.
feature#node_remooval

I'm not so sure about this, is this really a thing? It looks to me like it adds unnecessary clutter for very minor things that in a normal environment should not fail... no?

I have this same question like @ereslibre. Is this really required to add?

Re @mjura

From security reason we have to clean nodes properly

There was a lot of discussion around these cleanups, the risk of failure, and so on. We decided that - we're only going to remove the certs etc needed to rejoin the cluster (etcd/kubernetes) for the moment, and will expand later as needed.
The expectation is, once a node is removed, that machine is reimaged (for bare metal...) or the VM deleted (for clouds..) to remove any leftover secrets - including secrets we're not in control of - like docker images with hardcoded secrets, or hostpath volumes, etc etc.

authors: ereslibre inercia kiall mjura

repo: kubic-project/salt


text:
packaging: followup to exit with 1 when build failed

followup for #40

merging directly, as it only affects the packaging pipeline

repo: kubic-project/velum


text:
Implement FiberScheduler#address_resolve

Overview
Scheduler#address_resolve is implemented (with my another gem kudojp/resolv_fiber).
Banchmaking
Here is the performance of DNS lookups benchmarked in spec/blockings/address_resolve_spec.rb.
It is actually slower than sequential DNS lookup 😓
Investigation and updates should be done in the future PRs.
👁  Confirm these things.
- Resolving with scheduler is faster than multithreading.
- Execution times of resolving scheduler do not improve in a liner manner.

--------------------------
|   Resolve localhost    |
--------------------------
## Resolving 1 times:
Resolve with scheduler:                  0.0051587179999899035
Revolve sequentially in a single thread: 0.0005791019999890068
Resolve with multithreads:               0.0003892020000080265

## Resolving 10 times:
Resolve with scheduler:                  0.007527726000006396
Revolve sequentially in a single thread: 0.0029989099999880864
Resolve with multithreads:               0.005666819000012424

## Resolving 100 times:
Resolve with scheduler:                  0.10356555999999273
Revolve sequentially in a single thread: 0.028591699000003246
Resolve with multithreads:               0.06701763200000244

--------------------------
|   Resolve google.com   |
--------------------------
## Resolving 1 times:
Resolve with scheduler:                  0.0013242039999994404
Revolve sequentially in a single thread: 0.0003692009999980428
Resolve with multithreads:               0.00039940099999569156

## Resolving 10 times:
Resolve with scheduler:                  0.009659733999995979
Revolve sequentially in a single thread: 0.003000911000000883
Resolve with multithreads:               0.0019985069999961524

## Resolving 100 times:
Resolve with scheduler:                  0.09449232800000118
Revolve sequentially in a single thread: 0.028693300000000477
Resolve with multithreads:               0.0181234629999949

ref. https://github.com/kudojp/async_scheduler/actions/runs/6220274914/job/16879962625

Codecov Report

Merging #23 (5bfb1bc) into main (b41e48e) will increase coverage by 0.84%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #23      +/-   ##
==========================================
+ Coverage   61.11%   61.95%   +0.84%
==========================================
  Files           2        2
  Lines          90       92       +2
==========================================
+ Hits           55       57       +2
  Misses         35       35

Impacted Files
Coverage Δ

lib/async_scheduler/scheduler.rb
60.67% <100.00%> (+0.90%)
:arrow_up:

Continue to review full report at Codecov.

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

Benchmarking
Here is the performance of DNS lookups benchmarked in spec/blockings/address_resolve_spec.rb.
It is actually slower than sequential DNS lookup 😓
Investigation and updates should be done in the future PRs.
👁  Confirm these things.
- Resolving with scheduler is faster than multithreading.
- Execution times of resolving scheduler do not improve in a liner manner.

--------------------------
|   Resolve localhost    |
--------------------------
## Resolving 1 times:
Resolve with scheduler:                  0.0051587179999899035
Revolve sequentially in a single thread: 0.0005791019999890068
Resolve with multithreads:               0.0003892020000080265

## Resolving 10 times:
Resolve with scheduler:                  0.007527726000006396
Revolve sequentially in a single thread: 0.0029989099999880864
Resolve with multithreads:               0.005666819000012424

## Resolving 100 times:
Resolve with scheduler:                  0.10356555999999273
Revolve sequentially in a single thread: 0.028591699000003246
Resolve with multithreads:               0.06701763200000244

--------------------------
|   Resolve google.com   |
--------------------------
## Resolving 1 times:
Resolve with scheduler:                  0.0013242039999994404
Revolve sequentially in a single thread: 0.0003692009999980428
Resolve with multithreads:               0.00039940099999569156

## Resolving 10 times:
Resolve with scheduler:                  0.009659733999995979
Revolve sequentially in a single thread: 0.003000911000000883
Resolve with multithreads:               0.0019985069999961524

## Resolving 100 times:
Resolve with scheduler:                  0.09449232800000118
Revolve sequentially in a single thread: 0.028693300000000477
Resolve with multithreads:               0.0181234629999949

ref. https://github.com/kudojp/async_scheduler/actions/runs/6220274914/job/16879962625

authors: codecov-commenter kudojp


text:
Support NumPy 2

Via https://github.com/rdkit/rdkit/pull/7531 RDKit support NumPy 2.0. However, the setup.py does not reflect this, yet. This PR allows both NumPy 1.x and 2.x as installation requirement.

Thanks for reporting this. The last builds are already compiled using Numpy > 2.0. Keeping the numpy install dependency < 2  was an oversight. Closing this in favor of #105 .

authors: kuelumbus padix-key

repo: kuelumbus/rdkit-pypi


text:
pure - df, pure_arrayperformance and pure_arraydetails

Would that be possible to include those stats in the plugin please?

i just noticed i got the values after upgrading to 2.1.0p28

repo: kuhn-ruess/Checkmk-Checks


text:
kz-admin后台管理系统

https://kuizuo.cn/project/kz-admin后台管理系统
当时初学Web开发的时候，除了写一个网页博客外，第二个选择无非就是一个后台管理系统，可以应用于多种需要数据管理类项目中。

学习了，正好我缺个后台

authors: kuizuo sunzehui

repo: kuizuo/blog


text:
ts-jest not picking up modules from .d.ts file resulting in "module not found" error

🐛 Bug Report
I currently have a module inside of a .d.ts file which has been included as part of my tsconfig.json. VS Code/TypeScript seems to pick up the types for this module normally through my tsconfig includes, however when I go to run the tests I get "Cannot find module '@test/utility' from 'api/TestApi.ts'".
Full error:
src/root.component.test.tsx
  ● Test suite failed to run

    Cannot find module '@fsg-saturn/advised-utility' from 'api/TestApi.ts'

    Require stack:
      api/TestApi.ts
      root.component.tsx
      root.component.test.tsx

    > 1 | import { sendApiRequest } from "@test/utility";
        | ^
      2 | import { TestMessage } from "../feature/testMessage/TestMessage";
      3 |
      4 | export const getTestMessage = async (): Promise<TestMessage> =>

      at Resolver.resolveModule (../node_modules/jest/node_modules/jest-resolve/build/resolver.js:311:11)
      at Object.<anonymous> (api/TestApi.ts:1:1)

To Reproduce
My tsconfig looks like this:
{
  "extends": "ts-config-single-spa",
  "compilerOptions": {
    "esModuleInterop": true,
    "module": "esnext",
    "allowSyntheticDefaultImports": true,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "lib": [
      "dom",
      "es5",
      "scripthost",
      "es2015",
      "es2015.promise",
      "es2016.array.include",
      "es2018"
    ],
    "noEmit": true,
    "jsx": "react",
    "strict": true
  },
  "include": ["src/**/*", "@types/**/*"]
}

My jest.config.js looks like this:
module.exports = {
  rootDir: "src",
  transform: {
    "^.+\\.jsx?$": "babel-jest",
    "^.+\\.tsx?$": "ts-jest",
    ".+\\.(css|styl|less|sass|scss)$": "jest-css-modules-transform",
  },
  transformIgnorePatterns: ["node_modules/?!(@material)/"],
  setupFilesAfterEnv: [
    "../node_modules/@testing-library/jest-dom/dist/index.js",
  ],
};

The .d.ts file looks like this (utility.d.ts found at /@types/):
declare module "@test/utility" {
  import { sendApiRequest } from "@test/utility/api/ApiUtils";
  export { sendApiRequest };
}

declare module "@test/utility/api/ApiUtils" {
  type QueryData = {
    [key: string]: string | number | boolean;
  };
  export const sendApiRequest: <T>(
    path: string,
    query?: QueryData
  ) => Promise<T>;
  export {};
}

The test looks like this:
import React from "react";
import { render } from "@testing-library/react";
import Root from "./root.component";

describe("Root component", () => {
  it("should be in the document", () => {
    const { getByText } = render(<Root />);
    expect(getByText(/Testapp is mounted!/i)).toBeInTheDocument();
  });
});

The reference to the test looks like this:
import { sendApiRequest } from "@test/utility";
import { TestMessage } from "../feature/testMessage/TestMessage";

export const getTestMessage = async (): Promise<TestMessage> =>
  await sendApiRequest<TestMessage>("hello-world-message");

Steps to reproduce the behavior:
Run npm run test
Expected behavior
The tests run successfully.
envinfo
System:
    OS: Mac OS (latest)
    Node version: v14.16.0

Npm packages:
    jest: 27.0.4
    ts-jest: 27.0.3
    typescript: 4.1.2

The error Cannot find module is Jest runtime error. To be precise, it is Jest module resolution error that Jest cannot find the module with the path.
The only way to solve it is using moduleNameMapper, you can check https://kulshekhar.github.io/ts-jest/docs/getting-started/paths-mapping

authors: ahnpnl mattwebber

repo: kulshekhar/ts-jest


text:
Fixing dependency syntax problem with graphviz

Current version resulted in the error:
Using Anaconda API: https://api.anaconda.org
Fetching package metadata: ....
Solving package specifications: .
Error:  Package missing in current linux-64 channels:
  - biobuilds/graphviz

You can search for this package on anaconda.org with

    anaconda search -t conda biobuilds/graphviz

Removing =1 from the end fixes this issue.

I am not sure if this change introduces any other bugs, I am not familiar with conda.

Thanks, I tested your PR and it works fine.


text:
[New game]: Gusess the ball game

🎮 Game Request
A ball is kept under a cup and it is jumbled with three cups. The player have to find the cup in which the ball is there.
Point down the features
Click on the play button.
The cups will be jumbled.
Find the cup in which the ball is present.
Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

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

/assign

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

authors: PVBharadwaj kunjgit

repo: kunjgit/GameZone


text:
[Enhancement]: Tic Tac Toe game Missing Error

Do you want to have the enhancement of existing game ? 😀 Describe yourself..

In this game win the player x after that match is finish,but the game not finish continuous move is worked.
This spolling the game rules.
please assign me..
i want to add proper game and UI

Describe the solution you'd like
Expected behaviour & UI
Screencast from 2024-05-26 13-38-39.webm
Actual behaviour & UI
Screencast from 2024-05-26 13-32-46.webm
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @sivaprasath2004 , You can't have another issue before completing the previous one 😀
you already have the following 1 open issues 👀 ! :
#3154

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

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

@kunjgit why the issue can closed... Please explain

I will work on the isuue

@kunjgit i will close the previous issue #3154

please reopen the issue....


text:
[New game]: Flappy Bird

🎮 Game Request
Game logic and basic description
Flappy Bird is a notoriously difficult game that requires precise timing and reflexes.

Track bird, pipes, score, and game state.
Update bird based on gravity and user input.
Check collisions and update game state/score.

Point down the features
Game points
The player controls a bird, attempting to fly through a series of gaps between pipes without hitting them.
Tapping the screen makes the bird flap its wings and ascend slightly.
The bird constantly descends due to gravity.
If the bird hits a pipe or goes off the screen, the game ends.

Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

\assign

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

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

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


text:
String_game added

PR Description 📜
String Game added
Fixes #2911

Mark the task you have completed ✅

[x] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[x] I have added screenshot for website preview in assets/images
[x] I have added entries for my game in main README.md
[x] I have added README.md in my folder
[x] I have added working video of the game in README.md (optional)
[x] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @kushaljgec2025 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

you have to add your game screenshot in assets image and also you have to add readme file inside your own game dir
make sure you are doing the changes !!

Yes I am doing it , within today

Thank you  @kushaljgec2025 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


text:
合并新版本

合并新版本

merge master


text:
Gallery using viewpager cannot scroll when zoom image with zoomabledrawee

Hi Friends,
I have Issue, when I using library fresco with control zoomabledrawee, while I zoom it, and scroll image to end of left or end of right, and contineu scroll, viewpager cannot scroll to next image.
plz help me!!!.

you need judge whether the zoomed image scrolled the edge,，you can reference my code.I rewrite three java file to perfect the zoom like photoview here is my code first is: DefaultZoomableController.java, and then is ZoomableDraweeView.java, finally is MultiPointerGestureDetector.java
DefaultZoomableController.java is below
import javax.annotation.Nullable;
import android.app.Activity;
import android.content.Context;
import android.graphics.Matrix;
import android.graphics.PointF;
import android.graphics.RectF;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.animation.DecelerateInterpolator;
import com.facebook.common.internal.Preconditions;
import com.nineoldandroids.animation.Animator;
import com.nineoldandroids.animation.AnimatorListenerAdapter;
import com.nineoldandroids.animation.ValueAnimator;
/**

Zoomable controller that calculates transformation based on touch events.
*/
public class DefaultZoomableController
implements ZoomableController, TransformGestureDetector.Listener ,GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener{
private static final RectF IDENTITY_RECT = new RectF(0, 0, 1, 1);
private TransformGestureDetector mGestureDetector;
private Listener mListener = null;
private boolean mIsEnabled = false;
private boolean mIsRotationEnabled = false;
private boolean mIsScaleEnabled = true;
private boolean mIsTranslationEnabled = true;
private float mMinScaleFactor = 0.5f;
private float mMaxScaleFactor = Float.POSITIVE_INFINITY;
private final RectF mViewBounds = new RectF();
private final RectF mImageBounds = new RectF();
private final RectF mTransformedImageBounds = new RectF();
private final Matrix mPreviousTransform = new Matrix();
private final Matrix mActiveTransform = new Matrix();
private final Matrix mActiveTransformInverse = new Matrix();
private final float[] mTempValues = new float[9];
private final RectF mTempRect = new RectF();
private final ValueAnimator mValueAnimator;
private final float[] mAnimationStartValues = new float[9];
private final float[] mAnimationDestValues = new float[9];
private final float[] mAnimationCurrValues = new float[9];
private final Matrix mNewTransform = new Matrix();
private boolean isSingleTapEnable = false;
private GestureDetector sysgestureDetector;//system gesture detector,need implement to do something more
private Context mContext;
private boolean canScroll = false;
private static final float MIN_SCALE_FACTOR = 1.0f;
private static final float MID_SCALE_FACTOR = 1.5f;
private static final float MAX_SCALE_FACTOR = 2.0f;
public DefaultZoomableController(TransformGestureDetector gestureDetector, Context context) {
mGestureDetector = gestureDetector;
mGestureDetector.setListener(this);
mValueAnimator = ValueAnimator.ofFloat(0, 1);
mValueAnimator.setInterpolator(new DecelerateInterpolator());
mContext = context;
sysgestureDetector = new GestureDetector(context, this);
sysgestureDetector.setOnDoubleTapListener(this);
}
public static DefaultZoomableController newInstance(Context context) {
return new DefaultZoomableController(TransformGestureDetector.newInstance(),context);
}
@Override
public void setListener(Listener listener) {
mListener = listener;
}
/** Rests the controller. */
public void reset() {
mGestureDetector.reset();
mPreviousTransform.reset();
mActiveTransform.reset();
onTransformChanged();
}
private void setTargetScale(float scale,float coordinateX,float coordinateY){
Matrix matrix = new Matrix();
matrix.setScale(scale, scale, coordinateX, coordinateY);
setTransform(matrix, 200, null);
}
public boolean getCanScroll(){
return canScroll;
}
/** Sets whether the controller is enabled or not. /
@Override
public void setEnabled(boolean enabled) {
mIsEnabled = enabled;
if (!enabled) {
reset();
}
}
public void setSingleTapEnable(boolean tapEnable){
this.isSingleTapEnable = tapEnable;
}
public boolean getIsSingleTapEnabled(){
return isSingleTapEnable;
}
/* Returns whether the controller is enabled or not. */
@Override
public boolean isEnabled() {
return mIsEnabled;
}
/** Sets whether the rotation gesture is enabled or not. */
public void setRotationEnabled(boolean enabled) {
mIsRotationEnabled = enabled;
}
/** Gets whether the rotation gesture is enabled or not. */
public boolean isRotationEnabled() {
return  mIsRotationEnabled;
}
/** Sets whether the scale gesture is enabled or not. */
public void setScaleEnabled(boolean enabled) {
mIsScaleEnabled = enabled;
}
/** Gets whether the scale gesture is enabled or not. */
public boolean isScaleEnabled() {
return  mIsScaleEnabled;
}
/** Sets whether the translation gesture is enabled or not. */
public void setTranslationEnabled(boolean enabled) {
mIsTranslationEnabled = enabled;
}
/** Gets whether the translations gesture is enabled or not. */
public boolean isTranslationEnabled() {
return  mIsTranslationEnabled;
}
/** Gets the image bounds before zoomable transformation is applied. */
public RectF getImageBounds() {
return mImageBounds;
}
protected RectF getTransformedImageBounds() {
return mTransformedImageBounds;
}
/** Sets the image bounds before zoomable transformation is applied. */
@Override
public void setImageBounds(RectF imageBounds) {
if (!imageBounds.equals(mImageBounds)) {
mImageBounds.set(imageBounds);
onTransformChanged();
}
}
/** Gets the view bounds. */
public RectF getViewBounds() {
return mViewBounds;
}
/** Sets the view bounds. */
@Override
public void setViewBounds(RectF viewBounds) {
mViewBounds.set(viewBounds);
}
/** Gets the minimum scale factor allowed. */
public float getMinScaleFactor() {
return mMinScaleFactor;
}
/**

Sets the minimum scale factor allowed.

Note that the hierarchy performs scaling as well, which
is not accounted here, so the actual scale factor may differ.
*/
public void setMinScaleFactor(float minScaleFactor) {
mMinScaleFactor = minScaleFactor;
}

/** Gets the maximum scale factor allowed. */
public float getMaxScaleFactor() {
return mMaxScaleFactor;
}
/**

Sets the maximum scale factor allowed.

Note that the hierarchy performs scaling as well, which
is not accounted here, so the actual scale factor may differ.
*/
public void setMaxScaleFactor(float maxScaleFactor) {
mMaxScaleFactor = maxScaleFactor;
}

/**

Maps point from the view's to the image's relative coordinate system.
This takes into account the zoomable transformation.
*/
public PointF mapViewToImage(PointF viewPoint) {
float[] points = mTempValues;
points[0] = viewPoint.x;
points[1] = viewPoint.y;
mActiveTransform.invert(mActiveTransformInverse);
mActiveTransformInverse.mapPoints(points, 0, points, 0, 1);
mapAbsoluteToRelative(points, points, 1);
return new PointF(points[0], points[1]);
}

/**

Maps point from the image's relative to the view's coordinate system.
This takes into account the zoomable transformation.
*/
public PointF mapImageToView(PointF imagePoint) {
float[] points = mTempValues;
points[0] = imagePoint.x;
points[1] = imagePoint.y;
mapRelativeToAbsolute(points, points, 1);
mActiveTransform.mapPoints(points, 0, points, 0, 1);
return new PointF(points[0], points[1]);
}

/**

Maps array of 2D points from absolute to the image's relative coordinate system,
and writes the transformed points back into the array.
Points are represented by float array of [x0, y0, x1, y1, ...].

@param destPoints destination array (may be the same as source array)
@param srcPoints source array
@param numPoints number of points to map
*/
private void mapAbsoluteToRelative(float[] destPoints, float[] srcPoints, int numPoints) {
for (int i = 0; i < numPoints; i++) {
destPoints[i * 2 + 0] = (srcPoints[i * 2 + 0] - mImageBounds.left) / mImageBounds.width();
destPoints[i * 2 + 1] = (srcPoints[i * 2 + 1] - mImageBounds.top)  / mImageBounds.height();
}
}

/**

Maps array of 2D points from relative to the image's absolute coordinate system,
and writes the transformed points back into the array
Points are represented by float array of [x0, y0, x1, y1, ...].

@param destPoints destination array (may be the same as source array)
@param srcPoints source array
@param numPoints number of points to map
*/
private void mapRelativeToAbsolute(float[] destPoints, float[] srcPoints, int numPoints) {
for (int i = 0; i < numPoints; i++) {
destPoints[i * 2 + 0] = srcPoints[i * 2 + 0] * mImageBounds.width() + mImageBounds.left;
destPoints[i * 2 + 1] = srcPoints[i * 2 + 1] * mImageBounds.height() + mImageBounds.top;
}
}

/**

Gets the zoomable transformation
Internal matrix is exposed for performance reasons and is not to be modified by the callers.
*/
@Override
public Matrix getTransform() {
return mActiveTransform;
}

/**

Returns the matrix that fully transforms the image from image-relative coordinates
to scaled view-absolute coordinates.
*/
public void getImageRelativeToViewAbsoluteTransform(Matrix outMatrix) {
mActiveTransform.mapRect(mTempRect, mImageBounds);
outMatrix.setRectToRect(IDENTITY_RECT, mTempRect, Matrix.ScaleToFit.FILL);
}

// TODO(balazsbalazs) resolve issues with interrupting an existing animation/gesture with
// a new animation or transform
/**

Sets a new zoom transformation.

If this method is called while an animation or gesture is already in progress,

this will currently result in undefined behavior.
*/
public void setTransform(Matrix newTransform) {
setTransform(newTransform, 0, null);
}

/**

Sets a new zoomable transformation and animates to it if desired.

If this method is called while an animation or gesture is already in progress,

this will currently result in undefined behavior.

@param newTransform new transform to make active
@param durationMs duration of the animation, or 0 to not animate
@param onAnimationComplete code to run when the animation completes. Ignored if durationMs=0
*/
public void setTransform(
Matrix newTransform,
long durationMs,
@Nullable Runnable onAnimationComplete) {
if (mGestureDetector.isGestureInProgress()) {
mGestureDetector.reset();
}
cancelAnimation();
if (durationMs <= 0) {
mActiveTransform.set(newTransform);
onTransformChanged();
} else {
setTransformAnimated(newTransform, durationMs, onAnimationComplete);
}
}

/** Do not call this method directly; call it only from setTransform. */
private void setTransformAnimated(
final Matrix newTransform,
long durationMs,
@Nullable final Runnable onAnimationComplete) {
Preconditions.checkArgument(durationMs > 0);
Preconditions.checkState(!mValueAnimator.isRunning());
mValueAnimator.setDuration(durationMs);
mActiveTransform.getValues(mAnimationStartValues);
newTransform.getValues(mAnimationDestValues);
mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
float fraction = (float) valueAnimator.getAnimatedValue();
for (int i = 0; i < mAnimationCurrValues.length; i++) {
mAnimationCurrValues[i] = (1 - fraction) * mAnimationStartValues[i] +
fraction * mAnimationDestValues[i];
}
mActiveTransform.setValues(mAnimationCurrValues);
onTransformChanged();
}
});
if (onAnimationComplete != null) {
mValueAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
Log.e("setTransformAnimated", "onAnimationEnd");
mActiveTransform.set(newTransform);
onTransformChanged();
onAnimationComplete.run();
}
});
}
mValueAnimator.start();
}
public Matrix getmActiveTransform(){
return mActiveTransform;
}
private void cancelAnimation() {
mValueAnimator.removeAllUpdateListeners();
mValueAnimator.removeAllListeners();
if (mValueAnimator.isRunning()) {
mValueAnimator.cancel();
}
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
if (getIsSingleTapEnabled()){
if (mContext instanceof Activity){
((Activity)mContext).finish();
return true;
}
}
return false;
}
@Override
public boolean onDoubleTap(MotionEvent event) {
float currentFactor = getScaleFactor();
if (currentFactor < MID_SCALE_FACTOR){
setTargetScale(MID_SCALE_FACTOR, event.getX(), event.getY());
}else if(currentFactor >= MID_SCALE_FACTOR && currentFactor < MAX_SCALE_FACTOR){
setTargetScale(MAX_SCALE_FACTOR, event.getX(), event.getY());
}else {
setTargetScale(MIN_SCALE_FACTOR,event.getX(), event.getY());
}
return true;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
return false;
}
@Override
public boolean onDown(MotionEvent e) {
return false;
}
@Override
public void onShowPress(MotionEvent e) {
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
int width = mContext.getResources().getDisplayMetrics().widthPixels;
float transformLeft = getTransformedImageBounds().left;
float transformRight = getTransformedImageBounds().right;
//judge whether the image has scrolled edge and scroll orientation is left or right
if ((Math.abs(transformLeft) < 0.05f && distanceX < 0) || (Math.abs(transformRight-width) < 0.05f && distanceX > 0)){
canScroll = true;
}else {
canScroll = false;
}
return true;
}
@Override
public void onLongPress(MotionEvent e) {
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return false;
}
/** Notifies controller of the received touch event.  */
@Override
public boolean onTouchEvent(MotionEvent event) {
if (mIsEnabled) {
switch (event.getActionMasked()){
case MotionEvent.ACTION_UP://for image kick-back when image scale is less than 1.0
case MotionEvent.ACTION_CANCEL:
float scale = getScaleFactor();
if (scale < MIN_SCALE_FACTOR){
RectF rect = getTransformedImageBounds();
setTargetScale(MIN_SCALE_FACTOR, rect.centerX(), rect.centerY());
}
break;
}
sysgestureDetector.onTouchEvent(event);
return mGestureDetector.onTouchEvent(event);
}
return false;
}
protected void onTransformChanged() {
mActiveTransform.mapRect(mTransformedImageBounds, mImageBounds);
if (mListener != null && isEnabled()) {
mListener.onTransformChanged(mActiveTransform);
}
}
/**

Zooms to the desired scale and positions the view so that imagePoint is in the center.

If this method is called while an animation or gesture is already in progress,

this will currently result in undefined behavior.

@param scale desired scale, will be limited to {min, max} scale factor
@param imagePoint 2D point in image's relative coordinate system (i.e. 0 <= x, y <= 1)
@param viewPoint 2D point in view's absolute coordinate system
@param limitTransX  Whether to adjust the transform to prevent black bars from appearing on

                the left or right.

@param limitTransY Whether to adjust the transform to prevent black bars from appearing on

               the top or bottom.

@param durationMs length of animation of the zoom, or 0 if no animation desired
@param onAnimationComplete code to execute when the animation is complete.

                       Ignored if durationMs=0

*/
public void zoomToImagePoint(
float scale,
PointF imagePoint,
PointF viewPoint,
boolean limitTransX,
boolean limitTransY,
long durationMs,
@Nullable Runnable onAnimationComplete) {
scale = limit(scale, mMinScaleFactor, mMaxScaleFactor);
float[] viewAbsolute = mTempValues;
viewAbsolute[0] = imagePoint.x;
viewAbsolute[1] = imagePoint.y;
mapRelativeToAbsolute(viewAbsolute, viewAbsolute, 1);
float distanceX = viewPoint.x - viewAbsolute[0];
float distanceY = viewPoint.y - viewAbsolute[1];
mNewTransform.setScale(scale, scale, viewAbsolute[0], viewAbsolute[1]);
mNewTransform.postTranslate(distanceX, distanceY);
limitTranslation(mNewTransform, limitTransX, limitTransY);
 setTransform(mNewTransform, durationMs, onAnimationComplete);

}

/* TransformGestureDetector.Listener methods  */
@Override
public void onGestureBegin(TransformGestureDetector detector) {
    mPreviousTransform.set(mActiveTransform);
    // TODO(balazsbalazs): animation should be cancelled here
}

@Override
public void onGestureUpdate(TransformGestureDetector detector) {
    mActiveTransform.set(mPreviousTransform);
    if (mIsRotationEnabled) {
        float angle = detector.getRotation() * (float) (180 / Math.PI);
        mActiveTransform.postRotate(angle, detector.getPivotX(), detector.getPivotY());
    }
    if (mIsScaleEnabled) {
        float scale = detector.getScale();
        mActiveTransform.postScale(scale, scale, detector.getPivotX(), detector.getPivotY());
    }
    limitScale(detector.getPivotX(), detector.getPivotY());
    if (mIsTranslationEnabled) {
        mActiveTransform.postTranslate(detector.getTranslationX(), detector.getTranslationY());
    }
    if (limitTranslation(mActiveTransform, true, true)) {
        mGestureDetector.restartGesture();
    }
    onTransformChanged();
}

@Override
public void onGestureEnd(TransformGestureDetector detector) {
    mPreviousTransform.set(mActiveTransform);
}

/** Gets the current scale factor. */
@Override
public float getScaleFactor() {
    mActiveTransform.getValues(mTempValues);
    return mTempValues[Matrix.MSCALE_X];
}

private void limitScale(float pivotX, float pivotY) {
    float currentScale = getScaleFactor();
    float targetScale = limit(currentScale, mMinScaleFactor, mMaxScaleFactor);
    if (targetScale != currentScale) {
        float scale = targetScale / currentScale;
        mActiveTransform.postScale(scale, scale, pivotX, pivotY);
    }
}

/**
 * Keeps the view inside the image if possible, if not (i.e. image is smaller than view)
 * centers the image.
 * @param limitX whether to apply the limit on the x-axis
 * @param limitY whether to apply the limit on the y-axis
 * @return whether adjustments were needed or not
 */
private boolean limitTranslation(Matrix newTransform, boolean limitX, boolean limitY) {
    RectF bounds = mTransformedImageBounds;
    bounds.set(mImageBounds);
    newTransform.mapRect(bounds);
    float offsetLeft = limitX ?
            getOffset(bounds.left, bounds.width(), mViewBounds.width()) : bounds.left;
    float offsetTop = limitY ?
            getOffset(bounds.top, bounds.height(), mViewBounds.height()) : bounds.top;
    if (offsetLeft != bounds.left || offsetTop != bounds.top) {
        newTransform.postTranslate(offsetLeft - bounds.left, offsetTop - bounds.top);
        return true;
    }
    return false;
}

private float getOffset(float offset, float imageDimension, float viewDimension) {
    float diff = viewDimension - imageDimension;
    return (diff > 0) ? diff / 2 : limit(offset, diff, 0);
}

private float limit(float value, float min, float max) {
    return Math.min(Math.max(min, value), max);
}

}
ZoomableDraweeView.java below here ,I rewrite onTouchEvent
@Override
public boolean onTouchEvent(MotionEvent event) {
if (mZoomableController.onTouchEvent(event)) {
if (mZoomableController.getScaleFactor() > 1.0f) {
getParent().requestDisallowInterceptTouchEvent(true);
if (((DefaultZoomableController)mZoomableController).getCanScroll()){
getParent().requestDisallowInterceptTouchEvent(false);
}
}
return true;
}
return super.onTouchEvent(event);
}
MultiPointerGestureDetector.java below here I also rewrite onTouchEvent
/**
* Handles the given motion event.
* @param event event to handle
* @return whether or not the event was handled
*/
public boolean onTouchEvent(final MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_MOVE: {
// update pointers
for (int i = 0; i < MAX_POINTERS; i++) {
int index = event.findPointerIndex(mId[i]);
if (index != -1) {
mCurrentX[i] = event.getX(index);
mCurrentY[i] = event.getY(index);
}
}
            long donwnTime = event.getDownTime();
            long eventTime = event.getEventTime();
            // start a new gesture if not already started
            if (!mGestureInProgress && shouldStartGesture()) {
                startGesture();
            }
            // notify listener
            if (mGestureInProgress && mListener != null) {
                if (Math.abs(eventTime-donwnTime) > 150){ //when we double tap to zoom image we need not update gesture,the duration 150 I test is work well
                    mListener.onGestureUpdate(this);
                }
            }
            break;
        }

        case MotionEvent.ACTION_DOWN:
        case MotionEvent.ACTION_UP:
        case MotionEvent.ACTION_POINTER_DOWN:
        case MotionEvent.ACTION_POINTER_UP: {
            // we'll restart the current gesture (if any) whenever the number of pointers changes
            // NOTE: we only restart existing gestures here, new gestures are started in ACTION_MOVE
            boolean wasGestureInProgress = mGestureInProgress;
            stopGesture();
            reset();
            // update pointers
            for (int i = 0; i < MAX_POINTERS; i++) {
                int index = getPressedPointerIndex(event, i);
                if (index == -1) {
                    break;
                }
                mId[i] = event.getPointerId(index);
                mCurrentX[i] = mStartX[i] = event.getX(index);
                mCurrentY[i] = mStartY[i] = event.getY(index);
                mCount++;
            }
            // restart the gesture (if any) if there are still pointers left
            if (wasGestureInProgress && mCount > 0) {
                startGesture();
            }
            break;

        }
        case MotionEvent.ACTION_CANCEL: {
            stopGesture();
            reset();
            break;
        }
    }
    return true;
}

repo: kunny/ZoomableDraweeView-sample

license_source: bigquery


text:
graph: backend: elyzor: use oneDNN's ISA traits to determine cpu features

Extract available CPU features using xbyak utils from oneDNN instead of internal graph compiler's functionality.
In order to detect CPU features, both (gc internal impl and xbyak utils) call cpuid() function to populate a bitmask consisting of 4 ints describing features (int info[4] in case of gc internal impl and int EAX, EBX, ECX, EDX in case of xbyak utils). Then individual bits are checked to determine supported features.
In the comments below I've specified which flag is extracted from which bit, in order to verify that both implementations are identical.

ping for review @AndreyPavlenko @kurapov-peter

I'd avoid using xbyak, but fine for a stopgap solution

I'd avoid using xbyak

What's wrong with it? It seems like a default way of getting CPU features in oneDNN

authors: dchigarev kurapov-peter

repo: kurapov-peter/oneDNN


text:
Population-Density: Process GeoTiffs and save results to Parquet

Since the CSVs are not updated regularly on AWS, we switch to GeoTiffs to always get the latest data. To speed up the entire pipeline, we save the results in Parquet and not in Mongo anymore.

[ ] Process GeoTiffs using Spark
[ ] Save transformed results in Parquet
[ ] Implement new country selection

We can get up-to-date data from HDX in CSV format. Using their API allows for direct country selection. By downloading it directly for a country we avoid downloading GeoTIFFs for bigger regions on AWS and by using the CSVs on HDX we save some processing time.

repo: kuwala-io/kuwala


text:
Update fr.js

Minor typo (missing ' in my last pull request)

Already got it! 👍

authors: spolrot tayvano

repo: kvhnuke/etherwallet

license: mit


text:
Added support for Clinical Reports.

Status
READY
Migrations
NO
Description
Added support for Clinical Records.
Steps to Test or Reproduce
Fetch this branch and run the example app.
There is now a new blue icon next to the existing permission icon. Tapping it will request permissions for Clinical Records.
There is also a new button to query Clinical Records.
Impacted Areas in Application
It will now be possible to request permissions to read Clinical Records (as any other permission), and to query Clinical Records (as any other sample).

Hi @quentinleguennec
thank you very much for your PR and please sorry again for my late response, I recently merged your PR of the original HealthKitReporter and released a 3.1.0 version to CocoaPods

Thanks @kvs-coder, feel free to merge this PR if you did not find any issue with it (I cannot merge it myself).

authors: kvs-coder quentinleguennec


text:
Iss53squash

Note that no docbuild was attempted. "Exteral documentation" has a few names replaced.
See commit message https://github.com/kwehmeyer/Spotify.jl/commit/a47210660e523483c4e711e8abfbe3f734fa0d83

Fixes issue #53.

Trying to install on a new machine, I found an issue with writing the default .ini file - it seems to be in JSON format. Also, for those who have existing .ini-files, warnings ought to be added regaring adding 'user' and 'country' files. Will update this PR shortly.

Documentation build will still fail. It runs on Julia 1.6. 'Iterators.Pairs' was evidently moved to 'Base.Pairs'. I suggest using a newer version.

Thanks for the approval, Kwehmeyer! I'll be honored to put myself in the list!
Purpose? That's deep. I need to think about that and come back. Also, I'd appreciate your thoughts regarding what to do about the documentation?
Meanwhile, in the web of commits and regrets comprising this PR, this summary got stuck and buried. Here, I pulled it out:
User permissions
using Spotify will now ask user for limited privileges through
clicking in a pop-up browser.
-["user-read-private", "user-modify-playback-state",
"user-read-playback-state", "playlist-modify-private",
"playlist-read-private"]
If user makes calls which need more, the list is extended and
new user permission is applied for. Grants expire after one
hour. User is warned to call authorize().
Log control, general requests.

Introduce detail log control, hide non-error details as default.
HTTP.jl blabber is silenced, which requires adding 'Logging'
from Base.
For error codes returned, show both the general error
codes and their meaning. Also show detail feedback
which is included in some error message bodies. When errors
are logged (in red), the request is also shown (in red).
Empty arguments (e.g. 'country=""&offset=0') are not sent. See
'Argument types' below.

Market, locale and country arguments
Where such arguments are necessary, default values are taken from the .ini file,
which has a new field for this. For other functions, the default behavior is not to
send these arguments.
Menus and maintainability
A rudimentary menu existed, but required maintenance. Menu
now in src, using introspection to build menu.Menu's
argument values are now based on names, not types. Output
is formatted for making inline docs examples.
Argument types
Use duck-typing in all function wrappers, but internal conversion
to SpArtistId, etc. Sp___Id types have one representation
in url strings, and one including type in body strings. Export function
`parse_copied_link', which finds type.
Module structure
Move wrapper functions to mirror the 'Endpoints' hierarcy.
A few are only found in the 'Console' hierarchy. These get
alias functions.
Inline docs
Consistent formatting. Will hopefully work with docbuild, but
the 'docs' folder is hardly touched and might require work.
Examples folder, add files

playlist_and_library_utilties.jl for recurring functions.
mini_player.jl ( ':' to enter REPL mode).
remove_duplicates_in_same_playlists.jl

The latest commit added me to the authors list as recommended, and made minimal changes for a successful docbuild.
I believe this is ready to be merged, but I don't have write access to do so.


text:
Should this role make use of community.crypto.x509_certificate_info

For the openssl operations should this role make use of the collection 'community.crypto.x509_certificate_info'?
What do people think, i am happy to do the work if others agree.

I didn't know https://galaxy.ansible.com/community/crypto was a thing.
It would certainly clean a bunch of the openssl code up.
If you want to work on it, I can review PRs again.


text:
Facing error while running building production.

C:\Users\gaura\Desktop\basic>npm run start

> passthrough@1.0.0 start C:\Users\gaura\Desktop\basic
> cross-env NODE_ENV=production node .next/production-server/main.js

C:\Users\gaura\Desktop\basic\node_modules\next\dist\next-server\server\next-server.js:113
const filesystemUrls=this.getFilesystemPaths();const resolved=(0,_path.relative)(this.dir,untrustedFilePath);return filesystemUrls.has(resolved);}readBuildId(){const buildIdFile=(0,_path.join)(this.distDir,_constants.BUILD_ID_FILE);try{return _fs.default.readFileSync(buildIdFile,'utf8').trim();}catch(err){if(!_fs.default.existsSync(buildIdFile)){throw new Error(`Could not find a valid build in the '${this.distDir}' directory! Try building your app with 'next build' before starting the server.`);}throw err;}}get _isLikeServerless(){return(0,_config.isTargetLikeServerless)(this.nextConfig.target);}}exports.default=Server;function prepareServerlessUrl(req,query){const curUrl=(0,_url.parse)(req.url,true);req.url=(0,_url.format)({...curUrl,search:undefined,query:{...curUrl.query,...query}});}class NoFallbackError extends Error{}

Error: Could not find a valid build in the 'C:\Users\gaura\Desktop\basic\.next\.next' directory! Try building your app with 'next build' before starting the server.
    at Server.readBuildId (C:\Users\gaura\Desktop\basic\node_modules\next\dist\next-server\server\next-server.js:113:355)
    at new Server (C:\Users\gaura\Desktop\basic\node_modules\next\dist\next-server\server\next-server.js:3:120)
    at Object.createServer [as default] (C:\Users\gaura\Desktop\basic\node_modules\next\dist\server\next.js:2:638)
    at Object.<anonymous> (C:\Users\gaura\Desktop\basic\.next\production-server\application.module.js:34:65)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Module.require (internal/modules/cjs/loader.js:852:19)
    at require (internal/modules/cjs/helpers.js:74:18)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! passthrough@1.0.0 start: `cross-env NODE_ENV=production node .next/production-server/main.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the passthrough@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\gaura\AppData\Roaming\npm-cache\_logs\2020-10-01T07_55_08_781Z-debug.log

Can you verify that the app was built using yarn build or npm run build prior to running start?

npm run build

Are you passing any options to next? It looks like it's trying to find the build in ...\basic\.next\.next.

authors: gaurav-bothra kyle-mccarthy

repo: kyle-mccarthy/nest-next


text:
Edits remove all marks on affected lines

Checklist

[x] Have you updated the plugin to the latest version on main branch?
[x] Have you checked the Breaking Changes issue?
[x] Have you read through :h nvim-surround to see if there might be any relevant information there?

Describe the bug
Operations such as the ys, ds and cs default mappings remove marks and extmarks from the lines they modify.
To Reproduce

Type some text on a single line into a buffer.
Place a mark somewhere in this line.
Change the line with a command from this plugin, such as ysl" with default mappings.
Use ` or ' to jump to the mark you set.
Observe the error E20: Mark not set instead of the cursor jumping to the mark you set. :marks also does not show the mark.

Expected behavior
All marks (including extmarks such as those used by plugins such as LuaSnip) in regions of text not modified should be preserved.
Additional context
This plugin uses nvim_buf_set_lines() which removes all marks and extmarks from the lines it replaces, but not nvim_buf_set_text() which preserves regular marks outside the specified region and preserves extmarks even within the specified region, updating their positions/regions according to their gravity. As I understand it, positions within the replaced region are moved to the left boundary of the replaced region if the position has left-gravity, otherwise they are moved to the right boundary. This doesn't always do the Right Thing when replacing a region which contains an extmark or extmark boundary, but it's generally preferable to removing the mark entirely and should behave sanely when replacing any other region, including a region entirely enclosed within an extmark.
nvim_buf_set_text() was added in Neovim v0.5.0 and the only breaking change since then has been to how it treats negative indices, which shouldn't be relevant for anything this plugin does.
https://github.com/kylechui/nvim-surround/blob/030a4373aea4354d28052108650bf4e916d3283a/lua/nvim-surround/buffer.lua#L123-L133
In particular, the body of the above function can probably be replaced with a one-liner call to nvim_buf_set_text().

@Diomendius Thanks for spotting yet another bug, hopefully the linked pull request resolves it?

It seems to me that adding this new text will inevitably delete the marks, but I'm not 100% sure.

I thought I tested this and normal marks didn't get deleted, but it looks like all normal marks on lines affected by nvim_buf_set_text() get deleted. Vanilla editing operations actually don't preserve marks correctly either; they don't delete marks, but inserting or deleting text within a line doesn't shift the positions of any marks within that line. Inserting or deleting lines will shift the row coordinates of marks on other lines, but both nvim_buf_set_*() functions also do this AFAIK.
Normal marks are generally only used by users, so while it's annoying for plugins to delete them, it shouldn't break the functionality of anything else. Extmarks are used by Nvim plugins and are specifically designed to keep their positions in the text when surrounding or contained text is edited, and nvim_buf_set_text() should behave well in this regard, so long as you avoid reading text from the buffer then writing that same text over itself with nvim_buf_set_text().

Agreed; should I just merge this in for now, seeing as there probably isn't a way to "properly" fix this without rewriting/testing a bunch of new code?

Yeah I don't actually know if buf_set_text clearing the marks is intended behavior or not, otherwise it might be a good idea to open up an issue upstream. Thanks again for taking the time to give me such detailed feedback/thoughts :sparkling_heart:

authors: Diomendius kylechui

repo: kylechui/nvim-surround


text:
disableOnEdit for Text widgets

Description
Text widgets do not have a disableOnEdit property on its schema.
Reasons
Cloud-Manager extension will be working with CustomResourceDefinitions (CRDs) that have immutable fields after creation. The immutable fields are enforced by the x-kubernetes-validation rule (self == oldSelf). Currently, the users are able to edit the value in the UI and are only stopped upon submission. By adding disableOnEdit property to the Text widget schema, it would improve UX.
Attachments
Here, we are trying to edit the Remote Peering Name. It's looks permissible in the UI

Upon submission, we face the validation rule.

With disableOnEdit for Text widgets, we can avoid this UX issue

I created PR 3117 with the feature.

repo: kyma-project/busola


text:
chore: run merge-gate on pr label change

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)

Tested on this PR, it works

repo: kyma-project/cloud-manager


text:
Upgrade eam dependencies

Upgrade dependencies
Description
Upgrade dependencies as according to dependabot PR which didn't porperly upgrade it
Related PR
#106

/test pull-eventing-auth-manager-integration-test

repo: kyma-project/eventing-auth-manager


text:
Add DO NOT EDIT disclaimer

Description

Provide the DO NOT EDIT disclaimer to all objects that the manager is going to apply.
Example (from reconciler):
reconciler.kyma-project.io/managed-by-reconciler-disclaimer: |-
      DO NOT EDIT - This resource is managed by Kyma.
      Any modifications are discarded and the resource is reverted to the original state.

Maybe it would be a good idea to think about removing the old disclaimer (reconcilers one). It would help with migration from the reconciler to the manager

repo: kyma-project/serverless-manager


text:
Deprecated fetch_many method since it was deprecated in sqlx 0.7.4.

Hello.
I use this crate because it is very useful for using sqlx. Now that I have updated sqlx to 0.7.4, I get a warning on conditional_query_as!().
warning: use of deprecated method `sqlx::query::Map::<'q, DB, F, A>::fetch_many`: Only the SQLite driver supports multiple statements in one prepared statement and that behavior is deprecated. Use `sqlx::raw_sql()` instead.

It seems that Map::fetch_many() was deprecated in sqlx 0.7.4.
I am not using this method but I get a warning. Therefore, I would like to modify it so that the warning is only issued when the method is used.
Please let me know if there is something I should do.
Thanks.

Hmm, we could do this and cut a release, though I think that we should probably just do a major bump and drop support for it entirely.
If you feel like it you could add something like the following to the Unreleased section of CHANGELOG.md.  Otherwise I'll do it myself right before cutting the release.
### Deprecated

- Deprecated `fetch_many` method since it was deprecated in `sqlx` 0.7.4. ([#17](https://github.com/kyrias/sqlx-conditional-queries/pull/17))

Thank you for your reply!
I have added about this PR in the Unreleased section of CHANGELOG.md.
I don't use fetch_many() in my product, so I'm not too sure if it should be removed or kept.
However, I think the users will be happy with the current form where they can be told what to do by deprecated warnings.
How about doing this fix in patch bump and removing fetch_many in major bump?

Thank you!

authors: kyrias m-nawa

repo: kyrias/sqlx-conditional-queries


text:
Minhas dúvidas

Não tenho nenhuma dúvida até o momento.

COM APROVEITAMENTO. 👍

authors: ThallysonNK kyriosdata

repo: kyriosdata/git


text:
🛑 senoshaidodelasmanos.love is down

In 20b82b2, senoshaidodelasmanos.love (https://senoshaidodelasmanos.love) was down:

HTTP code: 0
Response time: 0 ms

Resolved: senoshaidodelasmanos.love is back up in e4d3f2c after 20 minutes.

repo: kyryl-bogach/upptime


text:
🛑 senoshaidodelasmanos.love is down

In 831efd5, senoshaidodelasmanos.love (https://senoshaidodelasmanos.love) was down:

HTTP code: 0
Response time: 0 ms

Resolved: senoshaidodelasmanos.love is back up in 1b9cd63 after 41 minutes.


text:
test: 100% Coverage pkg/discovery

Signed-off-by: Shubham Gupta iamshubhamgupta2001@gmail.com

@shubham-cmyk is this ready for review ?

I was refactoring the load.go so that I could test it completely. This is 80% complete the load refactor is not in this PR

Ok :)

authors: eddycharly shubham-cmyk

repo: kyverno/chainsaw


text:
Patch regression after #893

Related issue
#893

Proposed Changes
This PR

Applies this recommendation
Fixes menu link alignment regression after #893
Re-applies smooth scroll
Fixes a markdown bug in the footer section

The changes here were applied on top of #893

Checklist

[x] I have read the contributing guidelines.
[x] I have inspected the website preview for accuracy.
[] I have signed off my issue.

@deining would you kindly confirm that this PR incorporates the changes you recommended in your PR #893 to make the site more compatible with Docsy recommendations and future upgrades? Thanks very much.

@deining would you kindly confirm that this PR incorporates the changes you recommended in your PR #893

This PR looks good to me!
I do have one recommendation though: hugo v0.114.0 was released just yesterday, so you can use this version for your deployment.
Glad to see your site at docsy v0.7.0 now!

Thanks, yes I see in the logs it's using Go 1.14. But that's not defined anywhere in the site nor is it in Netlify. Where is that coming from? In order to use Node 18 I had to set an environment variable in Netlify since we couldn't figure that out either. Any ideas or advice, @deining?

Thanks, yes I see in the logs it's using Go 1.14. But that's not defined anywhere in the site nor is it in Netlify. Where is that coming from? In order to use Node 18 I had to set an environment variable in Netlify since we couldn't figure that out either. Any ideas or advice, @deining?

https://docs.netlify.com/configure-builds/manage-dependencies/#go
You can set GO_VERSION as environment variable, too. Or, what you also can do:
In netlify.tomladd these lines:
GO_VERSION = 1.20.5
NODE_VERSION = 18.16.0

Thanks, good suggestion. @onweru could you incorporate those changes here?

@deining, I'm seeing that if I remove the env var from the Netlify side and add it here in netlify.toml that the deployment preview is once again failing. It's also not picking up the Go version even though it is specified. Any idea why that is?

Looks like the latest change did the trick!

Sorry for the delay here, @onweru. I noticed that a patch to 0.7 was released. Would you mind bumping up to that so we get the fixes, please?

Not that it's necessarily a bad thing, but did you notice that code blocks now are slightly different?
New

Old

@chipzoller, would you like me to restore the old format?

Not necessarily, but what was the source or reason for the different styling? Is it something that could break in the future with Docsy upgrades potentially?

I do see a problem with how Mermaid diagrams are being rendered in these changes, however, and this would need to be addressed.
New

Old

Not necessarily, but what was the source or reason for the different styling? Is it something that could break in the future with Docsy upgrades potentially?

The Docsy upgrade introduced styling changes. Future Docsy upgrades could contain more styling changes. We would have to evaluate if we like those changes or not.

I will fix the regressions.

This is somewhat of a more minor concern, but I am seeing code blocks with quite a bit more padding around the actual text. See https://deploy-preview-904--kyverno.netlify.app/docs/installation/uninstallation/#uninstall-kyverno-with-yaml
New

Old

In https://deploy-preview-904--kyverno.netlify.app/docs/writing-policies/match-exclude/#match-statements have you noticed that the newer inline code styling doesn't seem to be applied to code inside tip boxes?
New

Old

This is looking good so far 👍

Just a couple things and I think we're good, @onweru.

authors: chipzoller deining onweru

repo: kyverno/website


text:
Add history heuristic

Score of testing vs master: 421 - 290 - 289  [0.566] 1000
...      testing playing White: 224 - 137 - 139  [0.587] 500
...      testing playing Black: 197 - 153 - 150  [0.544] 500
...      White vs Black: 377 - 334 - 289  [0.521] 1000
Elo difference: 45.8 +/- 18.2, LOS: 100.0 %, DrawRatio: 28.9 %

TC: 10+0.1

Thanks.


text:
Indices support using polygon

As alpaca does not have any data support for indices like VIX / VIX3M...I was trying to use the polygon option in the plugin but tht failed as well.
Warning 033: no VIX data in INITRUN
!Failed to get lastTrade VIX error: no snapshot found for VIX
Warning 033: no VIX3M data in INITRUN
!Failed to get lastTrade VIX3M error: invalid symbol: VIX3M
When browsing thru the code I saw the polygon features implemented don't support the indices neither?
Any plans  / option to include these as well?
Thanks

The polygon market data was implemented early when Alpaca used polygon market data. Since Alpaca no longer supports polygon anymore, I have no plan to expand it.

authors: kristof-troch kzhdev


text:
Move a group from the on-deck queue to an open court

Attempts to place a group onto an occupied court should be rejected.

https://github.com/SortableJS/vue.draggable.next may be helpful


text:
add ability to toggle password visibility

Closes #63

PR-Codex overview
This PR adds a show/hide password functionality to the login form.
Detailed summary

Added EyeIcon and EyeSlashIcon from @heroicons/react package for password visibility toggle.
Added isShowPassword state to manage password visibility.
Added toggleIsShowPassword function to toggle isShowPassword state.
Modified ValidatedInput component to change input type based on isShowPassword state.
Added password visibility toggle button to the login form.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Not merge yet

Codecov Report
Patch and project coverage have no change.

Comparison is base (d6d0d43) 68.24% compared to head (3613533) 68.24%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff            @@
##             master      #64   +/-   ##
=========================================
  Coverage     68.24%   68.24%
  Complexity      149      149
=========================================
  Files            76       76
  Lines          1118     1118
  Branches         89       89
=========================================
  Hits            763      763
  Misses          273      273
  Partials         82       82

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

Now it's all ready

authors: Andrew-Sem codecov-commenter


text:
Add artifacts upload for website

Since most likely read the docs is not working for this repository for now we store the build website data as an artifact. which can be downloaded.
I will add a documentation for this within this PR once we are sure that this workflow is working.

Okay it seems to work. We can merge this and check if the link is posted correctly. 🤞

repo: lab-cosmo/software-cookbook


text:
Improvements to installation docs

Hi there, I've just gone through the process of installing sphericart with CUDA for the first time and I'd suggest some minor improvements to the related docs:

Mention that the target GPU needs to be available during installation (relevant on HPC, where the login node may not have one)
Mention that some fairly serious amount of RAM is required (see #115)

Additionally, the docs on building the C++ code could benefit from:

Mention that libtorch is a requirement and where it should be exported (CMAKE_PREFIX_PATH)
Mention the need for cmake to be at least version 3.24 (otherwise the detection of which target GPU to target fails)

Overall, it'd be a good idea to make it possible to build for non-present GPUs, but this can't be accomplished by slightly polishing the docs. :)

It's usually recommended to build software on the compute nodes, rather than the login nodes, at least this is what we recommend at CSCS. I will however investigate adding in an environment variable where you can set the gencode and archcode manually, so you can choose that sphericart is built for a given architecture (or potentially a list of).
I'll create a PR tomorrow that addresses the above as well as the RAM issue (and modify the necessary documentation accordingly!)

Thank you! Very impressed with the responsiveness here :)

Hello! @nickjbrowning did this PR actually happen? Can we close this issue?

authors: ceriottm nickjbrowning sirmarcel

repo: lab-cosmo/sphericart


text:
静态托管能力与github联动

又重新体验了一下 vercel 的静态托管，体验实在是太好了，而且几乎是都在 vercel 上操作就行，后续更新也会自动触发网站的更新。
laf 的 roadmap 中也可以考虑增强这部分的能力，CLI 和 配置 AK 等操作对比上还是更繁琐了一些。

使用webhook也许会方便一些

vercel 是有webhook 的

在考虑等 laf-cli 实现完成后，将与 github 联动的能力，直接提升到 应用级别，静态托管 是应用 的一部分。

authors: fanux maslow object-kaz

repo: labring/laf


text:
Feature: add kubegems cloud image

https://www.kubegems.io/docs/installation/quick-install

https://github.com/kubegems/kubegems/issues/275
docker.io/labring/kubegems:v1.21.4

repo: labring/sealos


text:
Question: 如何单独重新安装组件

Detailed description of the question.
之前由于Ingress安装失败了，
再次安装的时候显示如下
2022-11-18T09:14:16 info start to install app in this cluster
1f91fc3c04c3d92d1edada1c17dffe07fadf7b4b6a3c99391c546e8dc41a8363
2022-11-18T09:14:16 info succeeded install app in this cluster: no change apps
2022-11-18T09:14:16 info start to scale this cluster
2022-11-18T09:14:16 info succeeded in scaling this cluster: no change nodes
2022-11-18T09:14:16 info
      ___           ___           ___           ___       ___           ___
     /\  \         /\  \         /\  \         /\__\     /\  \         /\  \
    /::\  \       /::\  \       /::\  \       /:/  /    /::\  \       /::\  \
   /:/\ \  \     /:/\:\  \     /:/\:\  \     /:/  /    /:/\:\  \     /:/\ \  \
  _\:\~\ \  \   /::\~\:\  \   /::\~\:\  \   /:/  /    /:/  \:\  \   _\:\~\ \  \
 /\ \:\ \ \__\ /:/\:\ \:\__\ /:/\:\ \:\__\ /:/__/    /:/__/ \:\__\ /\ \:\ \ \__\
 \:\ \:\ \/__/ \:\~\:\ \/__/ \/__\:\/:/  / \:\  \    \:\  \ /:/  / \:\ \:\ \/__/
  \:\ \:\__\    \:\ \:\__\        \::/  /   \:\  \    \:\  /:/  /   \:\ \:\__\
   \:\/:/  /     \:\ \/__/        /:/  /     \:\  \    \:\/:/  /     \:\/:/  /
    \::/  /       \:\__\         /:/  /       \:\__\    \::/  /       \::/  /
     \/__/         \/__/         \/__/         \/__/     \/__/         \/__/

                  Website :https://www.sealos.io/
                  Address :github.com/labring/sealos

但是实际上Ingress并没有安装运行成功，如下
ingress-nginx          ingress-nginx-admission-create-msgjz         0/1     Completed   0             53m

请问，如何能重新安装成功？
Some reference materials you see.
No response

try use sealos run xxx -f

多谢

authors: liuziyuan xiao-jay


text:
Upgrade to LSL 1.14 and UE4.25

Hi,
As mentionned by email to @cboulay, I developed my own LSL-UE4 plugin before finding this repo. Today I found some time to start merging both in order to get this official plugin up-to-date. I used LSL 1.14.0b2 and UE4.25.3.
There are some changes beyond the simple migration:

Only Windows is supported. I don't have anything non-Windows to test with, but it shouldn't be too hard to add support if needed.
As a consequence, the plugin loads a DLL instead of a static lib. I didn't find static LSL releases, and since I'm very new to LSL I stuck with what I found.
Added possibility to label outlet channels from UE4
I haven't run the included tests as of yet. I only ran the tests from my implementation, which only tested the outlet. So inlets are untested.

All in all, it works but things are missing. It's a better starting point if anyone wants to use LSL in UE4.
In the coming months our lab will probably start using this plugin, so I'll contribute more then. In the meantime, I can still offer basic support for potential users.
Bertrand

I haven't had the opportunity to test this out. But I browsed the code briefly and didn't see anything malicious, and I can't see how it would be worse than my very old code, so I'm happy to merge it.
While this plugin is fresh in your mind, how difficult do you think it would be to add support for Android build targets? In Unity, for example, it's just a question of manually adding the correct library binaries to the correct locations in the project, then when you build the Android target it just works. The easiest way to create liblsl binaries for Android is to create a dummy application in Android Studio then extract the files from the apk. See here. Do you think that could work here?

I have zero experience with Android development, so take everything I say with a grain of salt.
It depends if the library is linking statically or dynamically. If it's the former, it should be easy, there just needs to be a section for Android in LSL.Build.cs (and, as you mentioned, remove the hard-coded DLL loading from FLSL.cpp). If it's the later though, I really don't know, as you need to manually load the library in memory from the constructor, which is what is done for the Windows DLL, but I really don't know the process for other platforms. Good thing about UE though is that it's possible to go look at some of the plugins from the official release and use those as example, which is what I sometimes do when things get tricky.

authors: brifsttar cboulay


text:
contract code size exceeds 24576

hi , i am facing issues in deployment of this contract, i have tried on remix and truffle but even after enabling optimisation code is too ling to be deployed.
kindly can you guide me, how to resolve this issue

Hi @Topian-1238 what happens is the size is way higher than the maximum permitted amount, this is why it is not possible to deploy it on mainnet. You can for sure deploy it on development networks. Here (make sure to be on branch falcon-512) I have a network configuration that you can try,  just clone the repo, go to branch falcon-512 and then run docker-compose up which will start a development network with a higher block gas limit enough to have the contract deployed. After that you can go and run the soidity falcon tests with  npx hardhat test test/falcon-512-test.js --network development
Hope this helps

closing this since previous comment addresses the question

repo: lacchain/sol-falcon-verify


text:
test: enable 'cloud_account' test for 'make integration-only'

Summary

How did you test this change?

Issue

integration all

integration all

integration all

repo: lacework/go-sdk


text:
Idk where to put MPQ Editor bug, so I'll put it here

I use Wine-GE to run MPQ Editor. It hang when loading large map, for example https://www.epicwar.com/maps/339406/, same thing happens when you scan the map and apply scanned file list.

I just tried the map you provided on this version of Linux:
I was able to load that map just fine. Then, I selected "Tools / W3X Name Scanner" and clicked "Scan" in Map File Scanner. It found several unknown names. I clicked "Apply and it added these new entries to the file list just fine:

Pls try on a fresh install of wine. Mine is just freeze like this. Lutris logs show no warning.

any update on this?

You will have to contact Win-GE authors to look what's wrong. This is not a bug in MPQ Editor, because it loads the map just fine in Windows and also in normal version of Wine. Therefore I don't feel the need to fix anything.

repo: ladislav-zezula/StormLib


text:
wow

fgh

okay

repo: lagrangean/intro-html


text:
Fix extra semicolons

Found using the flag -Wextra-semi.
The warning flag is supported by Clang and GCC-8. It is not supported by GCC-7.5 (which is stock with Ubuntu 18.04), nor by Mingw-w64. Enabling the flag globally would cause CI build failures for the linux (stock GCC) and Mingw builds. As such, it is not being added to the makefile.

I suppose because I anticipated you would request changes if I touched that code and didn't fix something obvious with it. Though yes, those changes probably should have been separated out into a followup PR.

license: Zlib


text:
custom id generator

Fixes # (issue)
Changes
Please provide a brief description of the changes here.
For significant contributions please make sure you have completed the following items:

[ ] CHANGELOG.md updated for non-trivial changes
[ ] Unit tests have been added
[ ] Changes in public API reviewed

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@7b07013). Click here to learn what that means.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main      #36   +/-   ##
=======================================
  Coverage        ?   94.66%
=======================================
  Files           ?      207
  Lines           ?     9388
  Branches        ?        0
=======================================
  Hits            ?     8887
  Misses          ?      501
  Partials        ?        0

Impacted Files
Coverage Δ

sdk/include/opentelemetry/sdk/trace/tracer.h
100.00% <100.00%> (ø)

sdk/src/trace/id_generator.cc
100.00% <100.00%> (ø)

sdk/src/trace/span.cc
88.88% <100.00%> (ø)

sdk/src/trace/tracer_context.cc
80.00% <100.00%> (ø)

sdk/src/trace/tracer_provider.cc
78.94% <100.00%> (ø)

authors: codecov-commenter lalitb

repo: lalitb/opentelemetry-cpp