[Release-1.27] - Bump kine and align kine/etcd NotifyInterval with upstream

Backport fix for Bump kine and align kine/etcd NotifyInterval with upstream

#9385

Validated on Version:
-$ k3s version v1.27.10+k3s-f6303cf1 (f6303cf1)

Environment Details
Infrastructure
Cloud EC2 instance
Node(s) CPU architecture, OS, and Version:
NAME="Oracle Linux Server"
VERSION="8.9"
ID="ol"
ID_LIKE="fedora"
Cluster Configuration:
1 node servers
Steps to validate the fix

Install k3s
Validate  watch progress is enabled and set for 5s
Validate nodes and pods are all ok

Validation Results:

$ k3s -v
k3s version v1.27.10+k3s-f6303cf1 (f6303cf1)
go version go1.20.13

$ sudo cat /var/lib/rancher/k3s/server/db/etcd/config | grep progress
experimental-watch-progress-notify-interval:<PHONE_NUMBER>

 kgn
NAME               STATUS   ROLES                       AGE   VERSION
ip-172-31-25-192   Ready    control-plane,etcd,master   11m   v1.27.10+k3s-f6303cf1

~$ kgp -A
NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE
kube-system   coredns-6799fbcd5-77jlg                   1/1     Running     0          5m49s
kube-system   helm-install-traefik-crd-959nr            0/1     Completed   0          5m49s
kube-system   helm-install-traefik-lj2dc                0/1     Completed   1          5m49s
kube-system   local-path-provisioner-6c86858495-nj455   1/1     Running     0          5m49s
kube-system   metrics-server-67c658944b-tjjdx           1/1     Running     0          5m49s
kube-system   svclb-traefik-a6e5c723-r67pp              2/2     Running     0          5m33s
kube-system   traefik-f4564c4f4-qvg5j                   1/1     Running     0          5m33s

kine bump - https://github.com/rancher/distros-test-framework/actions/runs/7905975219


Push without deployment

Is your feature request related to a problem? Please describe.
It might be useful to allow for using Epinio to push from source into an image registry (from #784)
While this might sound odd at first, I believe this could allow for reuse of the same core pipeline and build governance inside of other CI systems. We could also combine it with a GitJob (#738) and an external registry to give a DockerHub like experience.
Describe the solution you'd like
I would like to be able to do something like epinio push blah --no-deploy to get a
Describe alternatives you've considered
We could instead break out the push process and pipeline into it's own project but that seems like significantly more work for less reward.

This is low priority, we can remove it from the Milestone if there is not enough time.


Info unit images should fall back more gracefully

If an image is not exactly square, bad things happen.
Current behavior

a 300x301 image will not render at the desired 150px width

(there may be other current undesirable behaviors related to 25/75 images, but this is the one we just noticed)
Expected behavior

the image would render at 150px width, with a height of 150 or 151 depending on rounding

Steps to replicate behavior

Create an Info Unit Group with 25/75 layout
Add an info unit and upload an image to it with a size of 300x301
Preview the page and behold the gigantic image

Screenshots
Current

Expected

Title updated to reflect the fact that this can happen on 50/50s, too. (I assume also 33/33/33s, though I haven't witnessed that.)


Unsure what to do

I managed to let hotcakes work nicely with dnn9.10. However, I don't know whether I can use it in a production env. Are there know security risks in doing so? Do I have to add/change something? Please let me know.

Hello @kurtwilbies
Unfortunately, Hotcakes 3.0 isn't compatible with DNN 9.  Sorry.

Thanks hismighttiness. Do you think its wise to use in a production env. If we managed to let hotcakes work with dnn9.
Is there a security risk in letting both hotcakes3 and dnn9 work together?


Great work thanks, can you give any advice on why intellisense is not working

I followed the instructions and it compiles in and uploads the firmware directly to the attached photon by DFU, thank you so much! this alone will save me hundreds of hours over the next few years!!
My intellisense is not working, it would be good to have this working, that will save me  a few more hundred hours. Any tips would be appreciated.
Intellisense is completely broken on the "folder" type VS project:

note when I open a new project in VS for example, a Raspberry project, Intellisense works:

Heres my src folder:

Forget the above. For some reason it magically came right, after I created that Rasberry project and went back to the tinker project , intellisense started working:

The most common reason is that the firmware source and the gcc-arm includes are in a different directory. The example assumes they're in a peer directory to your source directory. If they're in a different directory, you can edit CppProperties.json to be the actual path. It may be easier to make it an absolute path.


Datasource not offering any Site/Hosts/Services

Our installation:

CheckMK Enterprise in Version 1.6.0p11
Grafana v7.3.1
CheckMK Plugin v1.1.0

Grafana is running via docker:
docker run \
 -d \
 -p 8443:3000 \
 --name grafana \
 --restart always \
 --env "GF_AUTH_ANONYMOUS_ENABLED=true" \
 --env "GF_INSTALL_PLUGINS=https://github.com/tribe29/grafana-checkmk-datasource/archive/1.1.0.zip;checkmk-datasource" \
 --env "GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=checkmk-datasource" \
 -v /opt/grafana_data:/var/lib/grafana \
 grafana/grafana

When configuring the plugin, it is shown with a red "unsigned"-badge. Aside from that it accepts my credentials for CheckMK and shows Datasource is working when saving.
However, when creating a new panel there are no sites,  hosts or services being offered after selecting "CheckMK" as datasource. The CheckMK user for the login had access to around 8-9 machines before switching to an automation password.
Update: This is a permission issue. When using an administrator account, the Hosts become selectable. There is no mention of any required permissions as far as I can see. What permissions are needed?

Administrator permissions are need to read all hosts from WATO.

how do you send the URL and USER/PASS values as env_vars? I'm trying to add these using helm deployment, the installation of the plugin works but i'm having trouble in assigning the 3 needed values as env_vars.
thanks!

@lucianpatian I feel like your question should be in an issue on its own.
Personally, I didn't give USER/PASS via env, but configured them once. The volume takes ensures my configuration stays persistent.

i actually didn't open an issue because i was just asking for an advice and found this as closest to it. basically i'm trying to automate the entire plugin installation via helm charts, i was able to install it but i'm having trouble in sending the URL and API credentials as env_vars.
cheers!


How the PAF progress looks in Hypha activity feed view

Additional context
This is a sub-issue of the meta https://github.com/OpenTechFund/apply-app/issues/2
This issue is to show how the PAF progress looks in the activity feed.

To-Do

[ ] @OpenTechFund/design to add designs to issue
[ ] @OpenTechFund/devs to review designs for implementation
[ ] Di to help organise testing/feedback session with OTF users
[ ] do testing/feedback session with OTF users
[ ] OTF to sign-off
[ ] @OpenTechFund/design make sure final designs are attached to issue

PAF Modification

Easy PAF Approval

@fourthletter a few questions:

should the contractor be able to see the PAF progress in their application activity feed?
by the screenshots you've posted above, I understand OTF user roles in the "team" should be able to see the PAF progress. Correct?

should the contractor be able to see the PAF progress in their application activity feed?

Contractors/vendors should not be able to see the PAF progress. My current position is they shouldn't be able to access the PAF because it's an internal document that isn't relevant to them.

by the screenshots you've posted above, I understand OTF user roles in the "team" should be able to see the PAF progress. Correct?

'team' is currently not a user role, but 'staff' is. The user role 'staff' (also known as program managers and lead) should be able to see the PAF progress.
My screenshots have errors :( Design is hard and I will stick to my day job.

From discussions with Di yesterday she'd like us to carry out a design workshop with Dev Team, and OTF Team.

Di will provide the important status changes during the PAF creation, approval, and contraction creation journey.

On May 4 OTF and SimSec discussed potential activities for the Activity Feed and notifications. OTF will provide SimSec with notifications for the contracting journey.


Reorganise transform

Changes
Move entire app into transform directory, in order to reduce complexity.
How to test
Check the unit tests pass as normal.
Who can test
Anyone but @iwootten

👍


Added Scala codes => MergeSort.scala and InsertionSort.scala

Assigned Issue Number
#862
Language Opted
Scala
Number of files added or updated
2
Name of these files

Algorithms => Sorting_Algorithms => Merge_Sort => MergeSort.scala
Algorithms => Sorting_Algorithms => Insertion_Sort => InsertionSort.scala

Checklist

[x] I've read the contribution guidelines.
[x] I've referred the correct issue number.
[x] I've fill up this entire template correctly.

Working on few more, further will create few more PR for scala.


First milestone for structuring delivered data

[x] TSV or SQLite alternative if possible for each patient containing the following:

├── 2021-28499-03
│   ├── tumor.merged.cram
│   └── tumor.merged.cram.crai
├── 2022-03973-04
│   ├── normal.merged.cram
│   └── normal.merged.cram.crai
├── SNV.germline.normal.dnascope.vcf.gz
├── SNV.germline.normal.dnascope.vcf.gz.tbi

Filetype table: TSV

patient_id sample_id file_name file_type size md5 file_location index_file index_file_size index_file_md5 hts_file
F005780 2021-28499-03 tumor.merged.cram cram 1111GB m23hdx33333 NA tumor.merged.cram.crai 1GB mm33123771273 NA
F005780 F005780 SNV.germline.normal.dnascope.vcf.gz vcf.gz 11GB h37346 NA

Filecontent table: TSV

patient_id file_name file_type feature_count feature_type
F005780 SNV.germline.normal.dnascope.vcf.gz vcf.gz 77288 variant
F005780 tumor.merged.cram cram 345000000 reads/paired_reads

Expected outcome:
python file_organizer.py --path .... and output should the Filetype table above.

htsfile SNV.germline.normal.dnascope.vcf.gz
SNV.germline.normal.dnascope.vcf.gz:	VCF version 4.2 BGZF-compressed variant calling data

Above command will tell us file type that we can store in the Filetype table produced in the first task.

[x] Versioning and changelog: Versioning should be via creating a  __version__.py and every PR should have the version number bumped. And we will follow https://semver.org/ convention And for changelog we update a file every PR following convention from https://keepachangelog.com/en/1.0.0/

Changelog example: File name: CHANGELOG.md
# Changelog

## [X.X.X](YYYY-MM-DD)

### Added:
* Added new awesome feature

### Fixed:
* fixed path for reading directory...

## [X.X.X](YYYY-MM-DD)

### Removed:
* removed path for reading directory...

[x]  Important: Also print out file and directory counts so we can tally what we missed and what we successfully categorized. Essentially a log + summary.
[ ] Detect file type via using either Samtools (https://github.com/samtools/samtools) or pysamtools (https://pysam.readthedocs.io/en/latest/index.html) via htsfile functionality. Example:

Comment on this:  Detect file type via using either Samtools (https://github.com/samtools/samtools) or pysamtools (https://pysam.readthedocs.io/en/latest/index.html) via htsfile functionality.
Was not possible because of deprecated functions. Fow now it uses a dictionary in file constants.py


when i run sudo apt-get update this error was happened (101: Network is unreachable)

try this https://ubuntuforums.org/showthread.php?t=2387453&p=13749884#post13749884

Hi...
I tried those commands you mentioned in the link but it won't work

first check the network connection, your instance is connected to internet or not and open all traffic in security group.

Hi ...
I run ping google.com its working and I opened all traffic in the security group but I run Sudo apt-get update same error has happened

. I do not know what could have happened. I have googled applied some fixes but nothing seems to work

hi praveenkumar, are you change anything in /etc/apt/sources.list or add any repository into that file
If it is yes the error is related to your repository, please check if anything is wrong in your repository file.

I am trying to install artifactory that's why I added some configuration. Then I tried to  Sudo apt-get update that error has happened

This is bcoz apt sources is having some link which is not reachable


Various minor improvemenst following the first internal demo

I recommend reviewing by commits, each one is one specific change.


username in example is ignored

Reviewing the logs and/or exporting the json file as an artifact reveals the field "username" is not updated while all other fields are updated.  Changing the username to use a secret has no impact.  Renaming "username" to "testname" is successful.   Adding other fields is successful.  Is username a restricted field or is this a bug?
Applying variable substitution on JSON file: employee.json
*** not present: SubstitutingValueonKeyWithString username tcranz ***
SubstitutingValueonKeyWithString password ***
SubstitutingValueonKeyWithString url https://github.com/johndoe/TestApp
Successfully updated file: employee.json

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

ID: 31f48a84-dcf9-e852-3f3c-703382971875
Version Independent ID: ffe51d31-19c8-f4c3-0d31-dc154e414a59
Content: Use variable substitution with GitHub Actions for Azure
Content Source: articles/github/github-variable-substitution.md
Service: azure
GitHub Login: @juliakm
Microsoft Alias: jukullam

Thanks for the heads-up @juliakm.
I just re-ran the test and not able to repro so not sure how it got resolved, but good to be closed.


Remove code that is related to automatic notification banner showing

Currently, we are saving whether we show informational banners in the extension's storage. It might be best for debugging purposes to move this information fully over to a static json file, such as our settings file, to make it an easy on/off switch. Then we can change our calls to the extension storage for whether we have already shown the banner into a fetch call for our static json file.

As we just discussed, we are no longer automatically showing notifications for the tour. So, we can remove all code related to that functionality. There is no need to keep track of whether a user has seen the tour or not.

The code for Issue #258 was never pushed to main, and therefore there is no code to remove regarding the User Study Notification. I am closing this issue.


Fix editor_doc_cache locked by adb process on editor startup

Fixes #96798

I was able to reproduce the problem consistently under the following conditions:

The Godot Editor can be either self-contained or not.
Android Export needs to be configured in the Editor Settings.
The project must have an Android Export setup.
There needs to be an older version of editor_doc_cache-4.4.res in the cache folder:

Not self-contained: C:\Users\[user]\AppData\Local\Godot
Self-contained: [editorpath]\editor_data\cache

Start the project. While adb is running, the EditorHelp tries to rewrite the editor_doc_cache-4.4.res on disk and fails.

I tried reproducing the problem by starting adb in a loop in PowerShell and writing to editor_doc_cache-4.4.res in another PowerShell script but was never able to trigger the issue. I also changed the working directory when starting adb.exe in OS_Windows::execute without success. I still don't understand why adb locks this particular file only when started from Godot.
The fix was to postpone the first adb call until after the first scan is completed by adding a check for EditorNode::get_singleton()->is_editor_ready() in EditorExportPlatformAndroid::_check_for_changes_poll_thread. In any case, it wasn't particularly useful to call adb so early, even before the editor is ready.
Here is a small MRP project I used to reproduce the issue:
test-godot-export-android.zip

@Hilderin does this fix need to be picked in 4.3?

@m4gr3d I'm not sure. Technically, this should probably occurs only dev builds. Once to editor_doc_cache is generated for a Godot version, it does not need to be regenerated. Also, I did not find the source of the issue. It's may be caused by #91902 which is not in 4.3 I think. So, it's your call, the fix should work perfectly in 4.3 but I'm not even sure the problem exists in 4.3.

I've added the pick request; the update is straightforward enough and an improvement to the logic to warrant it.

Thanks!

Cherry-picked for 4.3.1.


Add native command to compile the contracts

Hi,
Would it be possible to have a native brownie compile or brownie build command?
It's common to want to compile the contracts without running the tests or a specific script. It will also facilitate the integration with third-party tools; we are looking at adding native brownie support to all the crytic tools (including Slither, Echidna and Manticore).
Thanks!

Easy :)  Will push a new version shortly.
Also, relating to #45, I intend to add a brownie analyze command that initiates your tooling on a project.  Possibly allow for integration such as automatic runs whenever a contract is recompiled, or at regular intervals.  I haven't fully thought this through yet, but it's awesome to hear that you're thinking about similar things.


Image cannot toggle from null to SkImage

Description
consider the following:
export const Demo = () => {
  const ref = useRef(null);
  const [image, setImage] = useState<SkImage | null>(null);

  const onPress = useCallback(async () => {
    if (ref.current == null) {
      return;
    }
    if (image == null) {
      // Take the screenshot of the view
      const snapshot = await makeImageFromView(ref);
      setImage(snapshot);
    } else {
      setImage(null);
    }
  }, [image]);
  return (
    <View style={{ flex: 1 }}>
      <View
        style={{ flex: 1, backgroundColor: "cyan" }}
       />

      <Canvas style={StyleSheet.absoluteFill} pointerEvents="none">
          <Image image={image} x={0} y={0} width={width} height={height}>
            <Blur blur={10} />
          </Image>
      </Canvas>
      <Button onPress={onPress} />
    </View>
  );
};

The image will be always shown. The following will work as expected:
export const Demo = () => {
  const ref = useRef(null);
  const [image, setImage] = useState<SkImage | null>(null);

  const onPress = useCallback(async () => {
    if (ref.current == null) {
      return;
    }
    if (image == null) {
      // Take the screenshot of the view
      const snapshot = await makeImageFromView(ref);
      setImage(snapshot);
    } else {
      setImage(null);
    }
  }, [image]);
  return (
    <View style={{ flex: 1 }}>
      <View
        style={{ flex: 1, backgroundColor: "cyan" }}
       />

      <Canvas style={StyleSheet.absoluteFill} pointerEvents="none">
          { image && <Image image={image} x={0} y={0} width={width} height={height}>
            <Blur blur={10} />
          </Image>}
      </Canvas>
      <Button onPress={onPress} />
    </View>
  );
};

might be a duplicate of #1476
Version
latest
Steps to reproduce
Run the example above
Snack, code example, screenshot, or link to a repository
import React, { useCallback, useRef, useState } from "react";
import { Button, StyleSheet, View } from "react-native";
import { Blur, SkImage, makeImageFromView } from "@shopify/react-native-skia";
import { Image, Canvas } from "@shopify/react-native-skia";

export const Breathe = () => {
  const ref = useRef(null);
  const [image, setImage] = useState<SkImage | null>(null);

  const onPress = useCallback(async () => {
    if (ref.current == null) {
      return;
    }
    if (image == null) {
      // Take the screenshot of the view
      const snapshot = await makeImageFromView(ref);
      setImage(snapshot);
    } else {
      setImage(null);
    }
  }, [image]);
  return (
    <View style={{ flex: 1, paddingBottom: 40 }}>
      <View style={{ flex: 1, backgroundColor: "cyan" }} />
      <Canvas style={StyleSheet.absoluteFill} pointerEvents="none">
        <Image image={image} x={0} y={0} width={100} height={100}>
          <Blur blur={10} />
        </Image>
      </Canvas>
      <View
        ref={ref}
        style={{ height: 100, width: 100, backgroundColor: "pink" }}
      />
      <Button title="Toggle Image" onPress={onPress} />
    </View>
  );
};

I fixed the demo a bit 👆and tested this - and it now works as expected on both iOS / Android:
https://github.com/Shopify/react-native-skia/assets/875252/666ff298-1f86-4ec7-a08f-bc0bb3ce994e
https://github.com/Shopify/react-native-skia/assets/875252/6749e665-ff94-44ff-8cda-ef75082c4060
I think we can close this - since it looks like setting the prop to null is now supported directly (without having to use a ternary operator). Please reopen if this is not the case, @wcandillon.

yes, the example was faulty, thks 🙏


Order gets stuck on failed after updating a Certificate from an invalid to a valid Dns/CommonName

Bugs should be filed for issues encountered whilst operating cert-manager.
You should first attempt to resolve your issues through the community support
channels, e.g. Slack, in order to rule out individual configuration errors.
Please provide as much detail as possible.

Describe the bug:
After Creating a Certificate with a wrong CommonName / DnsName (e.g. hello.k8) an Order is created. The order can not be completed as it gets declined by the ACME Server (e.g. Let's Encrypt).
After Updating the Certificate to have a valid CommonName/DnsName (e.g. hello.k8.fischler.eu) the Order is not Updated.
You need to delete and recreate the certificate (maybe even delete the order) for the Order to get recreated and completed succesfully.
Expected behaviour:
The Order should be updated/recreated to reflect the updated DNS/CommonName of the Certificate
Steps to reproduce the bug:

Create a Certificate with an invalid Dns/Common Name (e.g. hello.k8)
Wait for the Order to be declined by the ACME Server (Let's Encrypt)
Update the Certificate Ressource through kubectl apply or helm with a valid DNS/CommonName (e.g. hello.k8.fischler.eu)
The Order does not get updated

Anything else we need to know?:
If you need any more information let me know
Environment details::

Kubernetes version (e.g. v1.10.2): 1.17
Cloud-provider/provisioner (e.g. GKE, kops AWS, etc): AWS
cert-manager version (e.g. v0.4.0): v0.16.1
Install method (e.g. helm or static manifests): helm

/kind bug

I have seen this behavior in the controller that creates the orders, it doesn't properly check those. We should improve this logic.
/milestone v1.1
/area acme
/priority important-soon

/assign

@sharmaansh21 how is it going? If we can help with anything let me know

@sharmaansh21 If that's OK for you I'll start investigating 😊

Sure, please do.
On Wed, 4 Nov 2020 at 10:57, Maël Valais<EMAIL_ADDRESS>wrote:

@sharmaansh21 https://github.com/sharmaansh21 If that's OK for you I'll
start investigating 😊
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jetstack/cert-manager/issues/3250#issuecomment-721662878,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABCWEYLL6DURFCKTDAB5XBLSOEXQ7ANCNFSM4QXLAM4A
.

--
Regards,
Anshul Sharma
+31-616039562

This is the method that needs looking into: https://github.com/jetstack/cert-manager/blob/8127f0ad4228c58f37f0c0e4f5a2ef90c04f5082/pkg/controller/certificates/requestmanager/requestmanager_controller.go#L255
If a CertificateRequest contains a CSR that does not match the current Certificate spec, the CertificateRequest should be deleted and recreated (thus causing a new Order to be created). It is intentional that the Order is not updated, instead a new Order altogether will be created.
The function that actually performs this check is here, and it does seem that it'd cover the case you've described: https://github.com/jetstack/cert-manager/blob/8127f0ad4228c58f37f0c0e4f5a2ef90c04f5082/pkg/controller/certificates/util.go#L97
We also have a test case that verifies that it is possible to add an additional dnsName to a Certificate resource: https://github.com/jetstack/cert-manager/blob/8127f0ad4228c58f37f0c0e4f5a2ef90c04f5082/test/e2e/suite/issuers/acme/certificate/http01.go#L223
As a first step, I'd recommend putting together an end-to-end test case similar to above that precisely exercises the codepath/issue described here 😄

I also suspect that if this issue does exist, it will not just affect ACME (given that the ACME issuer does not have any special handling for this case, it solely resides in the Certificates controller)

/assign @maelvls

/unassign @sharmaansh21

I successfully reproduced the bug with a manual test.

Manual test: instructions and results.
You will need the kubectl cert-manager plugin as well as a local Kind cluster that I created with
./devel/cluster/create.sh && ./devel/addon/certmanager/install.sh

Let's create a simple certificate relying on ACME. The certificate is voluntarily invalid:
kubectl apply -f- <<EOF
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: example-issuer
spec:
  acme:
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      name: example-issuer-account-key
    solvers:
      - http01:
          ingress:
            class: nginx
---
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
  name: example-cert
spec:
  secretName: ca-key-pair
  dnsNames:
  - google.com
  issuerRef:
    name: example-issuer
    kind: Issuer
    group: cert-manager.io
EOF

Let's see the certificate & certificaterequest:
% kubectl cert-manager status certificate example-cert
Name: example-cert
Namespace: default
Created at: 2020-11-05T15:59:26+01:00
Conditions:
  Issuing: False, Reason: Failed, Message: The certificate request has failed to complete and will be retried: Failed to wait for order resource "example-cert-6n2r5-2320721609" to become ready: order is in "errored" state: Failed to create Order: 400 urn:ietf:params:acme:error:rejectedIdentifier: Error creating new order :: Cannot issue for "google.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy
  Ready: False, Reason: DoesNotExist, Message: Issuing certificate as Secret does not exist
DNS Names:
- google.com
Events:
  Type     Reason     Age   From          Message
  ----     ------     ----  ----          -------
  Normal   Issuing    23s   cert-manager  Issuing certificate as Secret does not exist
  Normal   Generated  22s   cert-manager  Stored new private key in temporary Secret resource "example-cert-fp76g"
  Normal   Requested  22s   cert-manager  Created new CertificateRequest resource "example-cert-6n2r5"
  Warning  Failed     20s   cert-manager  The certificate request has failed to complete and will be retried: Failed to wait for order resource "example-cert-6n2r5-2320721609" to become ready: order is in "errored" state: Failed to create Order: 400 urn:ietf:params:acme:error:rejectedIdentifier: Error creating new order :: Cannot issue for "google.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy
Issuer:
  Name: example-issuer
  Kind: Issuer
  Conditions:
    Ready: True, Reason: ACMEAccountRegistered, Message: The ACME account was registered with the ACME server
  Events:  <none>
error when finding Secret "ca-key-pair": secrets "ca-key-pair" not found
Not Before: <none>
Not After: <none>
Renewal Time: <none>
CertificateRequest:
  Name: example-cert-6n2r5
  Namespace: default
  Conditions:
    Ready: False, Reason: Failed, Message: Failed to wait for order resource "example-cert-6n2r5-2320721609" to become ready: order is in "errored" state: Failed to create Order: 400 urn:ietf:params:acme:error:rejectedIdentifier: Error creating new order :: Cannot issue for "google.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy
  Events:
    Type     Reason          Age   From          Message
    ----     ------          ----  ----          -------
    Normal   IssuerNotReady  22s   cert-manager  Referenced issuer does not have a Ready status condition
    Warning  OrderFailed     20s   cert-manager  Failed to wait for order resource "example-cert-6n2r5-2320721609" to become ready: order is in "errored" state: Failed to create Order: 400 urn:ietf:params:acme:error:rejectedIdentifier: Error creating new order :: Cannot issue for "google.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy
Order:
  Name: example-cert-6n2r5-2320721609
  State: errored, Reason: Failed to create Order: 400 urn:ietf:params:acme:error:rejectedIdentifier: Error creating new order :: Cannot issue for "google.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy
  No Authorizations for this Order
  FailureTime: 2020-11-05T15:59:29+01:00
No Challenges found for this Certificate

Now, let's use a valid dns name:
kubectl patch certificate example-cert -p '{"spec": {"dnsNames": ["example.com"]}}' --type=merge

Now, we can see that the CertificateRequest has not been updated:
Name: example-cert
Namespace: default
Created at: 2020-11-05T15:59:26+01:00
Conditions:
  Issuing: False, Reason: Failed, Message: The certificate request has failed to complete and will be retried: Failed to wait for order resource "example-cert-6n2r5-2320721609" to become ready: order is in "errored" state: Failed to create Order: 400 urn:ietf:params:acme:error:rejectedIdentifier: Error creating new order :: Cannot issue for "google.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy
  Ready: False, Reason: DoesNotExist, Message: Issuing certificate as Secret does not exist
DNS Names:
- example.com
Events:
  Type     Reason     Age   From          Message
  ----     ------     ----  ----          -------
  Normal   Issuing    114s  cert-manager  Issuing certificate as Secret does not exist
  Normal   Generated  113s  cert-manager  Stored new private key in temporary Secret resource "example-cert-fp76g"
  Normal   Requested  113s  cert-manager  Created new CertificateRequest resource "example-cert-6n2r5"
  Warning  Failed     111s  cert-manager  The certificate request has failed to complete and will be retried: Failed to wait for order resource "example-cert-6n2r5-2320721609" to become ready: order is in "errored" state: Failed to create Order: 400 urn:ietf:params:acme:error:rejectedIdentifier: Error creating new order :: Cannot issue for "google.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy
Issuer:
  Name: example-issuer
  Kind: Issuer
  Conditions:
    Ready: True, Reason: ACMEAccountRegistered, Message: The ACME account was registered with the ACME server
  Events:  <none>
error when finding Secret "ca-key-pair": secrets "ca-key-pair" not found
Not Before: <none>
Not After: <none>
Renewal Time: <none>
CertificateRequest:
  Name: example-cert-6n2r5
  Namespace: default
  Conditions:
    Ready: False, Reason: Failed, Message: Failed to wait for order resource "example-cert-6n2r5-2320721609" to become ready: order is in "errored" state: Failed to create Order: 400 urn:ietf:params:acme:error:rejectedIdentifier: Error creating new order :: Cannot issue for "google.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy
  Events:
    Type     Reason          Age   From          Message
    ----     ------          ----  ----          -------
    Normal   IssuerNotReady  113s  cert-manager  Referenced issuer does not have a Ready status condition
    Warning  OrderFailed     111s  cert-manager  Failed to wait for order resource "example-cert-6n2r5-2320721609" to become ready: order is in "errored" state: Failed to create Order: 400 urn:ietf:params:acme:error:rejectedIdentifier: Error creating new order :: Cannot issue for "google.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy
Order:
  Name: example-cert-6n2r5-2320721609
  State: errored, Reason: Failed to create Order: 400 urn:ietf:params:acme:error:rejectedIdentifier: Error creating new order :: Cannot issue for "google.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy
  No Authorizations for this Order
  FailureTime: 2020-11-05T15:59:29+01:00
No Challenges found for this Certificate

In this manual test, we can see that the CertificateRequest and Order are correctly created and that the Order gets stuck on the error:

Failed to create Order: 400 urn:ietf:params:acme:error:rejectedIdentifier: Error creating new order :: Cannot issue for "google.com": The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy

After updating the failing Certificate with a valid DNS name, the CertificateRequest doesn't get updated, which means the Order stays the same.

I then proceeded with writing an end-to-end test (PR https://github.com/jetstack/cert-manager/pull/3438) to capture that:

E2e test: instructions and results.
git fetch origin refs/pull/3438/head:pr3438 && git checkout pr3438
./devel/cluster/create.sh && ./devel/setup-e2e-deps.sh && ./devel/addon/certmanager/install.sh

# Finally, run the test.
./devel/run-e2e.sh --ginkgo.focus "ACME Certificate.*should allow updating the dns name of a failing certificate that had a wrong dns name"

Unfortunately, I wasn't able to reproduce it. The only difference I can see between the manual test and the e2e test is that in the e2e test, the Order object gets created even though I would expect to see the above error about the ACME server refusing to issue a certificate for this domain name.
I ran the e2e test and ran kubectl cert-manager status certificate every two seconds to see how the certificate evolves:

Ideas?

Digging briefly into Pebble, the Let's Encrypt test server used during e2e tests, it seems like it does not support configuring a list of domains that should return this 400 error for.
I actually believe that this may be (almost) working as intended.. this was a failed order because the request submitted to the ACME server was deemed invalid, which will trigger our regular 'back off' behaviour (which is to wait 1h before retrying again).
I think the bug here may therefore be in the logic that determines whether to back off or retry immediately. The logic for that is here: https://github.com/jetstack/cert-manager/blob/87989dbfe35bed99a9e031c71ad3a7d49030a8bf/pkg/controller/certificates/trigger/trigger_controller.go#L156-L166
I think we need to adapt this area of code to trigger an issuance immediately iff the spec of the Certificate does not match the previously failed CertificateRequest (i.e. the user has edited their Certificate resource).
This is definitely a regression, and is something we used to handle properly. There is a function you can use to determine whether a 'request matches the certificate spec' here: https://github.com/jetstack/cert-manager/blob/87989dbfe35bed99a9e031c71ad3a7d49030a8bf/pkg/controller/certificates/util.go#L97

Thanks, you are right! After reducing the 1 hour re-issuance delay to 1 second, the issue seemingly disappears:
https://github.com/jetstack/cert-manager/blob/db9b6448b692eb08e2bb8b8b93d86621029a6feb/pkg/controller/certificates/trigger/trigger_controller.go#L52-L56
After a conversation with James on #cert-manager-dev, the plan is now:

create a failing test case in trigger_controller_test.go; we would have a certificate with LastFailureTime = true. I'm not sure how to check that a new item was added to the schedule queue though
Make sure that we don't wait for 1 hour when the cert's spec doesn't match the request and tweak things a bit so that input is available and make sure input.Request isn't nil; that would look like-if crt.Status.LastFailureTime != nil {
+if crt.Status.LastFailureTime != nil && certificates.RequestMatchesSpec(crt, input.Request) {
 	now := c.clock.Now()
 	retryAfter := crt.Status.LastFailureTime.Add(retryAfterLastFailure)
 	if now.Before(retryAfter) {
 		log.V(logf.InfoLevel).Info("Not re-issuing certificate as an attempt has been made in the last hour", "retry_after", retryAfter)
 		c.scheduleRecheckOfCertificateIfRequired(log, key, retryAfter.Sub(now))
 		return nil
 	}
 }

I'll open a PR with all this

/milestone v1.3

Just wanted to let people know that I am still working on a fix in #3444.

Will be fixed for v1.3. TBD: the PR review of #3444.


Is this repo still maintained?

7 years from last version
Is it still maintained?

@eagleeye would you please consider tranfering the ownership to chai or deprecate the whole package? This thing looks abandoned.

@GustavoOS I don't have ownership permissions in this project, it belongs to Debitoor. I contribuited to it when I was working in Debitoor company. Some time ago I've asked Debitoor to transfer ownership to me, but got rejected. I can try to do a fork and maintain the fork if this package is still needed.

@eagleeye chai is also interested in forking and maintaining, what about some kind of partnership? could you please respond to https://github.com/chaijs/chai/issues/1616 ?

Hi @GustavoOS
Thanks for opening this issue. We're discussing the options proposed internally and will get back to you soon.

Also, Hi Andrii 👋 Hope you're well! @eagleeye

I've left a comment in https://github.com/chaijs/chai/issues/1616#issuecomment-2111847895.
What I'd propose is:

fork the repo/integrate the code into chai
we mark this repo as deprecated (not to break existing usages)
we reference the new repo in the readme

How would that sound?


Highlighting wrong with plugin mg979/vim-visual-multi for "current" multi cursor

Operating system/version
Ubuntu 20.04
Terminal emulator/version
bash
$TERM environment variable
tmux-256color
Tmux version
tmux 3.0a
Feature matrix

null-ls: require("null-ls.health").check()
========================================================================
  - OK: black: the command "black" is executable.
  - OK: buildifier: the command "buildifier" is executable.
  - OK: clang_format: the command "clang-format" is executable.
  - OK: json_tool: the command "python" is executable.

nvim: health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: RelWithDebInfo

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $VTE_VERSION='6003'
  - INFO: $COLORTERM='truecolor'

## tmux
  - OK: escape-time: 10
  - INFO: Checking stuff
  - OK: focus-events: on
  - INFO: $TERM: tmux-256color

nvim-lsp-installer: require("nvim-lsp-installer.health").check()
========================================================================
## nvim-lsp-installer report
  - OK: neovim version >= 0.7.0
  - WARNING: **Go**: not available
  - WARNING: **cargo**: not available
  - WARNING: **luarocks**: not available
  - WARNING: **Ruby**: not available
  - WARNING: **RubyGem**: not available
  - WARNING: **Composer**: not available
  - WARNING: **PHP**: not available
  - OK: **npm**: `8.1.0`
  - OK: **node**: `v16.13.0`
  - OK: **python3**: `Python 3.8.10`
  - WARNING: **pip3**: not available
  - WARNING: **javac**: not available
  - OK: **java**: `Ok`
  - WARNING: **julia**: not available
  - OK: **wget**: `GNU Wget 1.20.3 built on linux-gnu.`
  - OK: **curl**: `curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3`
  - OK: **gzip**: `gzip 1.10`
  - OK: **tar**: `tar (GNU tar) 1.30`
  - OK: **bash**: `GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)`
  - OK: **sh**: `Ok`
  - OK: GitHub API rate limit. Used: 0. Remaining: 5000. Limit: 5000. Reset: Mo 30 Mai 2022 10:11:13 CEST.

nvim-treesitter: require("nvim-treesitter.health").check()
========================================================================
## Installation
  - WARNING: `tree-sitter` executable not found (parser generator, only needed for :TSInstallFromGrammar, not required for :TSInstall)
  - OK: `node` found v16.13.0 (only needed for :TSInstallFromGrammar)
  - OK: `git` executable found.
  - OK: `cc` executable found. Selected from { vim.NIL, "cc", "gcc", "clang", "cl", "zig" }
    Version: cc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
  - OK: Neovim was compiled with tree-sitter runtime ABI version 14 (required >=13). Parsers must be compatible with runtime ABI.

## Parser/Features H L F I J
  - python         ✓ ✓ ✓ ✓ ✓
  - lua            ✓ ✓ ✓ ✓ ✓
  - cpp            ✓ ✓ ✓ ✓ ✓
  - c              ✓ ✓ ✓ ✓ ✓

  Legend: H[ighlight], L[ocals], F[olds], I[ndents], In[j]ections
         +) multiple parsers found, only one will be used
         x) errors found in the query, try to run :TSUpdate {lang}

provider: health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: xclip

## Python 3 provider (optional)
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Multiple python3 executables found.  Set `g:python3_host_prog` to avoid surprises.
  - INFO: Executable: /usr/bin/python3
  - INFO: Other python executable: /bin/python3
  - INFO: Python version: 3.8.10
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - WARNING: `ruby` and `gem` must be in $PATH.
    - ADVICE:
      - Install Ruby and verify that `ruby` and `gem` commands work.

## Node.js provider (optional)
  - INFO: Node.js: v16.13.0
  - WARNING: Missing "neovim" npm (or yarn) package.
    - ADVICE:
      - Run in shell: npm install -g neovim
      - Run in shell (if you use yarn): yarn global add neovim
      - You may disable this provider (and warning) by adding `let g:loaded_node_provider = 0` to your init.vim

## Perl provider (optional)
  - WARNING: "Neovim::Ext" cpan module is not installed
    - ADVICE:
      - See :help |provider-perl| for more information.
      - You may disable this provider (and warning) by adding `let g:loaded_perl_provider = 0` to your init.vim

telescope: require("telescope.health").check()
========================================================================
## Checking for required plugins
  - OK: plenary installed.
  - OK: nvim-treesitter installed.

## Checking external dependencies
  - OK: rg: found ripgrep 11.0.2
  - OK: fd: found fd 7.4.0

## ===== Installed extensions =====

## Telescope Extension: `dap`
  - INFO: No healthcheck provided

## Telescope Extension: `fzf`
  - INFO: No healthcheck provided

## Telescope Extension: `neoclip`
  - INFO: No healthcheck provided

vim.lsp: require("vim.lsp.health").check()
========================================================================
  - INFO: LSP log level : WARN
  - INFO: Log path: /home/q456457/.local/state/nvim/lsp.log
  - INFO: Log size: 46801 KB

vim.treesitter: require("vim.treesitter.health").check()
========================================================================
  - INFO: Runtime ABI version : 14
  - OK: Loaded parser for cpp: ABI version 13
  - OK: Loaded parser for lua: ABI version 13
  - OK: Loaded parser for python: ABI version 13
  - OK: Loaded parser for c: ABI version 13

Minimal vimrc that can reproduce this bug.
call plug#begin()
Plug 'sainnhe/everforest'
Plug 'mg979/vim-visual-multi'
call plug#end()

set termguicolors
colorscheme everforest

Steps to reproduce this bug using minimal vimrc
1. Launch vim/nvim
2. start multi cursor with <C-n> press n for next occurence
3. move cursor around

1. Launch vim/nvim
2. start multi cursor with <C-arrowDown>

Expected behavior
current multi cursor highlighted
Actual behavior
current multi cursor flickers in visual mode / not highlighted in normal mode see gifs

Probably these need to be modified
https://github.com/sainnhe/everforest/blob/ee24cd4bde3fea5c536a6a319900683825b16adc/colors/everforest.vim#L728-L731

I can't reproduce this, and I don't think it's a bug in color scheme level.
Can you retry with default color scheme?

With the default color scheme there is no issue.
I tested again with the minimal config and can reproduce the issue. Just the blinking is not there with with minimal config.
Still the current multi cursor is not highlighted correctly.
Btw I love this colorscheme <3

Sorry, I have no idea what's going on. Help wanted.

I just played around with the highlight groups.
When using these it works as expected:
call everforest#highlight('MultiMonoHl', g:everforest_palette.fg, g:everforest_palette.red)
call everforest#highlight('MultiCursorHl', g:everforest_palette.fg, g:everforest_palette.orange)
let g:VM_Mono_hl = 'MultiMonoHl'
let g:VM_Extend_hl = 'Visual'
let g:VM_Cursor_hl = 'MultiCursorHl'
let g:VM_Insert_hl = 'DiffChange'

Does this work for you?
call everforest#highlight('VMCursor', s:palette.bg0, s:palette.fg)
let g:VM_Mono_hl = 'VMCursor'
let g:VM_Extend_hl = 'Visual'
let g:VM_Cursor_hl = 'VMCursor'
let g:VM_Insert_hl = 'VMCursor'

It has issues I find. In blank spaces you dont see the cursor. see:

Btw I also have this in my config to improve diffs to my liking, what do you think?
autocmd ColorScheme everforest call everforest#highlight('DiffText', ['NONE', 'NONE', 'NONE'], ['#546b76', '17', 'LightBlue'])

vs default

This is really strange.
In your code:
call everforest#highlight('MultiMonoHl', g:everforest_palette.fg, g:everforest_palette.red)
call everforest#highlight('MultiCursorHl', g:everforest_palette.fg, g:everforest_palette.orange)
let g:VM_Mono_hl = 'MultiMonoHl'
let g:VM_Extend_hl = 'Visual'
let g:VM_Cursor_hl = 'MultiCursorHl'
let g:VM_Insert_hl = 'DiffChange'

The hi group of MultiMonoHl uses fg and foreground color and use red as background color. Did you notice that the characters under the cursors are barely visible? The foreground color and background color are hard to distinguish from, that's why I changed the fg to bg0. The foreground color becomes black so the characters are more visible. (Btw, you should use s:palette.fg instead of g: everforest_palette.fg.)
But when I changed the foreground color to bg0, the background color of current cursor also goes to black... So strange, the color of current cursor is controlled by terminal emulators in most of the time and should not be changed.

I want to try to reproduce this. What's the terminal emulator you are using?
 A terminal emulator is something like gnome terminal, konsole and iterm2, it's the app you launched to enter a terminal. So what's the terminal emulator you are using?

Should be fixed now.

Thanks love the new look :)


Way to use qbatch efficently on pbs torque ?

I've huge size(~300000000 million) of list and wants to use a java written algorithm(one executable commnd line) to do some calculation. This algorithm completes the calculation mostly takes less than a min on avg of 1-2 min.
I have been using gnu parallel but jobs are not faster/low cpu utilization.
I want to use 5 nodes(each have 72 cpus) or more with pbs torque scheduler in qbatch.
fyi : gnu parallel commands I use
export JOBS_PER_NODE=72
job_parallel="parallel -j $JOBS_PER_NODE --slf $PBS_NODEFILE --wd $WDIR --joblog process.log --resume --progress"
$job_parallel -a input_list.lst sh run_input.sh {}
I would be gratful if you could suggest how do i run effiencely utiizing all the cpus for this large list?
Thank you

Hi @rajiv03
It sounds like what you need to do is overload the jobs to get high CPU utilization
First, dump the entire set of commands into a file called "joblist" or similar.
Make sure you've set up your QBATCH_* environment variables to define QBATCH_NODES, and QBATCH_PPJ=72 and QBATCH_SYSTEM="pbs"
Then I would do something like
qbatch -c (length of joblist)/5 -j (72*N) joblist
What we need to decide on is how many multiples of 72 i.e. the N value will saturate the CPU. One thing to consider however, is, is your code inefficient in some way? Perhaps you're IO limited and that's why you're not getting much speedup?

Closing as there has been no further response from reporter.


Misaligned percent in Skills Tab (in mobile view)

Misaligned percent in Skills Tab
In mobile view of
https://vinaysomawat.github.io/
This may be a result of a misplaced <div> or omission of a <br> tag.
I, being an experienced web developer (since grade6) would be able to debug these out to make this wonderful portfolio website great again.

Can I work on this?


button change to hover appearance after tapping on touch screen

Godot version:

3.3 rc 8
OS/device including version:

Issue description:

tap a button on touch device, it show the hover state. the normal state is expected after tap.
Steps to reproduce:
Minimal reproduction project:

On Android, it's the same as iOS.
It may caused by it can not detect touches move out of the control after pressed on touch devices.

@alexzheng Can you show a video of this happening?
Also, please upload a minimal reproduction project to make this easier to troubleshoot.

It's a very straightforward issue, maybe the title caused confusion.
A button have states like normal, pressed, hover, focus, each can have different appearance.
After tapping a button and released it, it was expected the button state is normal or pressed if toggled is on. However on touch screen, the state is hover after tapping on the button.

ButtonState.tscn.zip
In this scene, the normal color is blue and the hover color is red, after tap on the button and release your finger from the touch screen, the color of the button is red, it is expected the normal color blue.

Same behaviour on Godot 3.2.1, 3.2.3, 3.3rc7.
I guess it has something to do with emulating mouse from touch gestures - when gestured ends it's sending the last coordinate to finish mouse events. But after this happens, mouse position isn't changed, so Godot thinks mouse is hovered.

https://github.com/naithar/godot/commit/f4458523a2621810d2e584280f866b0303401a84 - this changes seems to be fixing this issue, but I haven't really tested it. So it could introduce some new bugs and it's not really PR-ready.
And if this issue is also present on Android, I guess mouse reset code should be moved where mouse emulation is happening.

Same behaviour on Godot 3.2.1, 3.2.3, 3.3rc7.
I guess it has something to do with emulating mouse from touch gestures - when gestured ends it's sending the last coordinate to finish mouse events. But after this happens, mouse position isn't changed, so Godot thinks mouse is hovered.
Edit:
Any way to test this issue on Android to see if it behaves similarly?

I reported as touch screen, it means I have tested on both Android and iOS devices.

Same behaviour on Godot 3.2.1, 3.2.3, 3.3rc7.
I guess it has something to do with emulating mouse from touch gestures - when gestured ends it's sending the last coordinate to finish mouse events. But after this happens, mouse position isn't changed, so Godot thinks mouse is hovered.
Edit:
Any way to test this issue on Android to see if it behaves similarly?

I reported as touch screen, it means I have tested on both Android and iOS devices.

This changes https://github.com/naithar/godot/commit/442c59d4d8ccfa646232f2b02bc8c0cf65f6baad should address both iOS and Android. But it's not fully tested, so some corner cases could appear that might break input.

tested, so far so good.

Bug is confirmed to still be present on version 3.5.1

I've got the same issue (3.5.2) on Android with "Emulate Mouse From Touch" enabled. Basically it's like an invisible pointer is hovering over the buttons. My workaround was to create a theme variation ButtonTouch from my base button that overrides the default hover styles on Android. It was straightforward in my case since I only have a couple of button components which I reuse everywhere.

Unwanted hovering over a Control-Node is also reported in #31821.

Additional context from https://github.com/godotengine/godot/issues/84548 (thanks @rtiemann):

See the linked demo project (just three Button instances in a VBoxContainer).
Export the project to Android.
On an Android device, touch the center button and drag to one of the other buttons.
The center button enters normal state, the other button enters hovered state, just the way it works on PC using the mouse.
Remove the finger/pen.

Expected:

All buttons should be in normal state after having lifted the finger.

Observed:

Behavior is like on PC when doing the equivalent actions and not moving the mouse pointer after releasing the mouse button: the button the finger is dragged to stays in hovered state. This makes sense on PC because there is still a mouse pointer hovering over the button, but it makes no sense on a touch screen, especially after the finger has been lifted.
The hovered state is kept even when tapping any button or other parts of the screen.
The button goes back to normal state when dragging a finger anywhere over the screen (see Video/video_1.mp4 in demo repo).
Bug also occurs when simply dragging a finger across a button (see Video/video_2.mp4 in demo repo).
Bug also occurs when dragging from outside a button into a button (see Video/video_3.mp4 in demo repo).
Bug also occurs when tapping anywhere on the screen while holding a button with another finger (see Video/video_4.mp4 in demo repo).

Minimal reproduction project
I'll keep this Git repository around until the issue is closed:
https://github.com/rtiemann/GodotButtonTouchBug

I also thought about "solving" this issue by hiding it via theming, but clearly some internal state is being messed up and I don't know what side-effects to expect. I'd really prefer a proper solution.
No idea how the current implementation works, but maybe an explicit hidden/inactive/disabled/invisible mouse cursor state would help. The mouse cursor would be active when a real mouse is moved or while the screen is touched, and would be inactive when the last finger is lifted from the touch screen. Hovering states would only be allowed while the mouse cursor is active.

Until this is resolved, here is my workaround code (Godot 3.5 C#) which changes the theme so that all hover styleboxes and font colors are the same as the normal styles. I apply this to the root Control node. Requires the custom theme to be set in the project settings.
public void fixThemeForMobile()
{
    // Change theme to make all hover effects the same as regular (because otherwise this causes bugs on mobile)
    var setting = (string)ProjectSettings.GetSetting("gui/theme/custom");
    Theme = GD.Load<Theme>(setting);

    var styleboxTypes = Theme.GetStyleboxTypes();
    foreach (var styleboxType in styleboxTypes)
    {
        var styleboxList = Theme.GetStyleboxList(styleboxType);
        if (styleboxList.Contains("normal"))
        {
            Theme.SetStylebox("hover", styleboxType, Theme.GetStylebox("normal", styleboxType));
        }
    }
    var colorTypes = Theme.GetColorTypes();
    foreach (var colorType in colorTypes)
    {
        var colorList = Theme.GetColorList(colorType);
        if (colorList.Contains("font_color"))
        {
            Theme.SetColor("font_color_hover", colorType, Theme.GetColor("font_color", colorType));
        }
    }

    PropagateCall("update");
}


Add support for Safari

This is a really cool web component and I hate to be “that guy” but by extending direction from HTMLButtonElement and using is it won’t work in Safari, because Apple won’t let us have nice things. They refuse to implement is.
My suggestion, and please feel free to tell me to get lost, is to switch it to a HTMLElement and use composition where your WC wraps a button element to provide functionality/styling.
Cheers

you are right, the support for the is attribute is not available in Safari. Initially, I thought to go with this autonomous custom element approach and just extending the HTMLElement class but then I thought since it's just a button, why not take the advantage of the current button element to be more specific. But, in the interest of all, I have raised a PR #2 which includes the refactor. Might be shipping it with 2.0

@murtuzaalisurti cool, thanks for being open to my random feedback.


Support Swagger Object Customization

Need ability to customize swagger object the same way that http://swagger.io/customizing-your-auto-generated-swagger-definitions-in-1-5-x/ works for JAXRS. Here is an example of how I customize it for now: https://gist.github.com/anonymous/ff58c751180e4bc085b2#file-swagger-scala

Any update on this issue?


Migrate code to typescript

Coverage decreased (-8.08%) to 91.919% when pulling 41d77cbd6c17033e7f136a6216c397cc5a134ba9 on typescript into 3d649887e5e52afa09d8b92540bd173291eebfbc on master.

Coverage remained the same at 100.0% when pulling eaf7954fd448aebe5a0710ace5c9653a8bb06358 on typescript into 3d649887e5e52afa09d8b92540bd173291eebfbc on master.


trimTrailingSlash doesn't work on paths with *

What version of Hono are you using?
4.6.1
What runtime/platform is your app running on?
Cloudflare Workers
What steps can reproduce the bug?
Just make a Hono project and put this in src/index.ts
import { Hono } from "hono";
import { trimTrailingSlash } from "hono/trailing-slash";

const app = new Hono();

app.use(trimTrailingSlash());

app.get("/my-path/*", (c) => {
  return c.text("hi");
});

export default app;

What is the expected behavior?
Navigating to http://localhost:8787/my-path/something/else/ should redirect to http://localhost:8787/my-path/arst/arst
What do you see instead?
It stays the exact same :D
Additional information
Manually putting the trimTrailingSlash code inside the function will work:
app.get("/my-path/*", (c) => {
  if (c.req.path !== "/" && c.req.path[c.req.path.length - 1] === "/") {
    const url = new URL(c.req.url);
    url.pathname = url.pathname.substring(0, url.pathname.length - 1);
    return c.redirect(url.toString(), 301);
  }

  return c.text("hi");
});

Whilst waiting for a fix (if this is considered a bug) this version is cleaner and does the same thing:
if (ctx.req.path.endsWith("/")) {
  return ctx.redirect(ctx.req.url.slice(0, -1), 301);
}

To fix the issue all that needs to be done is remove the check for a 404 page here and here (for appending).
When I use this middleware I actually expect any page, regardless of anything else, to get the trailing slash trimmed; therefore I don't understand why if the page is found one should not obey that rule.
An option like "strict" or "always" could be added such that that check is removed (or, the other way around, add one called something like "onlyUnhandled" to get the current behaviour and make the new one the default).

Interesting, and I think we should do the redirecting before await next(), because we will also be running the handler/s even tho we end upon redirecting the request. Based upon this code -
import { Hono } from "hono";
import { trimTrailingSlash } from "hono/trailing-slash";

const app = new Hono().use(trimTrailingSlash());

app.get("/sample/*", (c) => {
  console.log("This endpoint was called!");
  return c.text("Hello Hono!");
});

export default app;

I can work on a PR to resolve this

The only issue I can see arising from this is when you have a specific path for which you want to keep the trailing slash regardless of the overall rule (and the same goes for the other function, where you might want to remove a trailing slash for a particular set of routes).
The issue I'm facing is that when going any route like /my-app, /my-app/, or /my-app/something/else(/) I want to "proxy"/"forward" the request to somewhere else, like a Cloudflare Pages app. To achieve this I do the following:
const application = new Hono();

application.get(`/my-app`, (context) => {
  return context.redirect(`/my-app/`);
});

application.on(
  "GET",
  [`/my-app/`, `/my-app/:path{.+$}`],
  async (context) => {
    if (context.req.path.endsWith("/") && context.req.path !== `/my-app/`) {
      return context.redirect(context.req.url.slice(0, -1), 301);
    }

    return await fetch(`https://my-other-app.pages.dev/${context.req.param("path") || ""}`);
  }
);

Setting aside the fact that I currently have my own copy of the trimpTrailingSlash for /my-app/*, you can see how I had to set up a redirect from /my-app to /my-app/ and how I've excluded /my-app/ from getting the trailing slash trimmed, to kind-of act like you'd expect the root / to act (can never trim that you). This is because SvelteKit (the app I'm "proxying") fetches resources from paths like: ./_app/immutable/assets/0.DrT8Lpa1.css and ./_app/immutable/entry/start.CCT2RJoh.js when on the root /, but ../_app/immutable/assets/0.DrT8Lpa1.css when in a subroute like /something/nested (notice the ./ and ../ at the beginning). For reference look at the note under the trailingSlash section on SvelteKit's documentation; it was the issue I was facing:

[...] the semantics of relative paths differ between the two cases (./y from /x is /y, but from /x/ is /x/y), and /x and /x/ are treated as separate URLs [...]

When I wasn't forcing a trailing slash only for /my-app/ the SvelteKit app would try to fetch from http://localhost/_app/... instead of http:/localhost/my-app/_app/..., resulting in a 404.
Having the adapter enforce the trailing slash for truly any path would help already, and having an exclude option I can pass that just adds those strings in a check before trimming would be a perfect solution to this use-case.

I think the best way for you to configure this would be to have 2 different route handlers, One with the trimTrailingSlash middleware and the other with appendTrailingSlash to enforce it on them.
Because I believe if you have applied this middleware, irrespective of the handler if there is a / at the end of the route we should remove it (other than the base home route) and vice versa for the other one.
Something like this -
import { Hono } from "hono";
import { trimTrailingSlash, appendTrailingSlash } from "hono/trailing-slash";

const routerWithTrim = new Hono().use(trimTrailingSlash());

routerWithTrim.get("/some", (c) => {
  return c.text("Hello Hono!");
});

const routerWithoutTrim = new Hono().use(appendTrailingSlash());

routerWithoutTrim.get("/another/", (c) => {
  return c.text("Hello Hono!");
});

const app = new Hono().route("/", routerWithTrim).route("/", routerWithoutTrim);

export default app;

I go agree that that should be default behaviour. What I don't agree with, however, is not allowing for any exceptions given how easy it is to implement, and given that it's the only configuration one might ever need to set (like in my case).
Maybe 99% of people won't use it, but those that do will have to resort to copy-pasting the implementation in the code, and tweak it to handle their exception, since it's trivial to do.
In any case, enforcing the default at all times, unlike the current implementation, is already a good step forward!


Search box bottom line is not vertically centered

version 1.10.6 has fixed this issue, please feel free to reopen this issue if you have any questions.


How can I convert BEAT bvh file to SMPL with this method?

Thank you very much for providing this method!
I would like to ask how can I convert BEAT bvh file to SMPL. I use this method and change the corresponding mapping, but the motion I
get is different from the template bvh file.
Could you give me some advice?
Thank you!

I'm so sorry that I haven't used a BEAT bvh file, but the retargeting process can sometimes change the skeleton. It's common that your result is different from your input bvh file.

Thanks for your reply very much! I wonder what dataset you used about your bvh file. Could you tell me please?
---- Replied Message ----
| From | @.> |
| Date | 03/24/2024 00:13 |
| To | @.> |
| Cc | HaiQin<EMAIL_ADDRESS>|
| Subject | Re: [EmptyBlueBox/BVH2SMPL] How can I convert BEAT bvh file to SMPL with this method? (Issue #1) |
I'm so sorry that I haven't used a BEAT bvh file, but the retargeting process can sometimes change the skeleton. It's common that your result is different from your input bvh file.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Oh so sorry I can't remember. 🥲

It doesn't matter. Thank you extremely! I will try to solve this problem.
---- Replied Message ----
| From | @.> |
| Date | 03/24/2024 00:24 |
| To | @.> |
| Cc | HaiQin<EMAIL_ADDRESS>|
| Subject | Re: [EmptyBlueBox/BVH2SMPL] How can I convert BEAT bvh file to SMPL with this method? (Issue #1) |
Oh so sorry I can't remember. 🥲
—
Reply to this email directly, view it on GitHub, or unsubscribe.


Add icon

Some sort of branding image and favicon would be nice for the app.

Special thanks to @ubirajarapelli
Pull request #15


Cannot select "No language specified"

Steps to reproduce:

Open a resource template with an InputLiteral.
Enter a value in the InputLiteral.
Click "Language: English" to open the language selector.
Click "No language specified".

Expected result:
"No language specified" radio button is selected.
Actual result:
"No language specified" is not selectable.

Closing as no longer a problem in master.


[WIP] Barebones FAST stage 1

Untested but passes validation.

Closing this as we will probably take a different direction, making networking and security stages optional.


downloaded this connector and it failed to build

I forked and cloned this connector. I did a maven clean install and it failed with 👍
[ERROR] Failed to execute goal on project egeria-connector-crux: Could not resolve dependencies for project org.odpi.egeria:egeria-connector-crux:jar:3.1-SNAPSHOT: The following artifacts could not be resolved: org.odpi.egeria:audit-log-framework:jar:3.1-SNAPSHOT, org.odpi.egeria:repository-services-apis:jar:3.1-SNAPSHOT, org.odpi.egeria:open-connector-framework:jar:3.1-SNAPSHOT, org.odpi.egeria:repository-services-implementation:jar:3.1-SNAPSHOT, org.odpi.egeria:connector-configuration-factory:jar:3.1-SNAPSHOT, org.odpi.egeria:open-metadata-types:jar:3.1-SNAPSHOT: org.odpi.egeria:audit-log-framework:jar:3.1-SNAPSHOT was not found in https://oss.sonatype.org/content/repositories/snapshots during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of ossrh-snapshots has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
I changed the 3.1-SNAPSHOT to 3.2 in the pom file and it compiled cleanly. by this I mean I set.
<open-metadata.version>3.2</open-metadata.version>
I tried  <open-metadata.version>3.12</open-metadata.version> but this had problems - a compile issue in the tests

3.1 release of the connector went out more than a year ago (September 2021) -- I'm not sure how long Maven Central keeps snapshots around, but probably not that long?
Any particular reason you're trying to build against such an old version, and not using the release but a snapshot?
(Any chance you're using a very old fork of the repository before it was renamed xtdb and that is causing some stale artifices?)

Hi Chris, thanks  for you comments. I was trying to find a build that completed and the old 3.2 one did; but the latest released Egeria code did not build for me.
I will clear out my .m2 in case there is something stale locally is causing this.

You are right @cmgrote - I did not realise I was building against an old version


chore(single_select_plugin): sdk update to 9.4

Build succeeded (check pipeline).

Build succeeded (check pipeline).

LGTM

Sonar scan result
More detail, see in https://sonarqube-gate.intgdc.com/dashboard?id=gooddata-dashboard-plugins-gate-PR52
To scan for vulnerabilities in dependencies and run unit tests (to get coverage report in sonar) please comment your PR with 'extended check sonar'.

Build succeeded (gate pipeline).

https://checklist.intgdc.com/job/compliance/job/gooddata-dashboard-plugins-sonarqube-scan-zuul-gate/51/ : SUCCESS in 59s
https://checklist.intgdc.com/job/compliance/job/gooddata-dashboard-plugins-fossa-scanning-zuul/28/ : SUCCESS in 47s (non-voting)
https://checklist.intgdc.com/job/compliance/job/gooddata-dashboard-plugins-merge-compliance-check/52/ : SUCCESS in 8s


When Adding YouTube Plugin the whole thing breaks

Kinda confused how to add the plugins I added YouTube-Plugin and it broke the whole install

no respond I close

Kinda confused how to add the plugins I added YouTube-Plugin and it broke the whole install

did you ever figure this out? I am having the same issue.


[infra] Update lit.dev Lit v2 api doc generation past the Lerna -> Wireit migration commit

Lit.dev generated API documentation is 10 months old & is pinned to a commit where the Lit project was built with Lerna.
Before attempting to get the Lit v3 branch to work, I need to update the Lit v2 documentation to build with Wireit on a newer commit.
Also blocked by TypeScript version of lit.dev:

TS 4.6.2 does not support module of NodeNext which the Lit repo uses. This breaks generation.

Fixed by https://github.com/lit/lit.dev/pull/1088


feat: Wire AVM gas used to public kernel

Starts wiring gas settings and usage across application and kernel circuits, tracking L2 gas used in the AVM first. This required the following changes to structs:

PublicCircuitPublicInputs now includes a gas_left to report how much was left at the end of their execution, as a means to report how much was used.
CallContext now includes a gas_left to inform the app circuit (private or public) how much gas it has available for execution.
TxRequest and TxExecutionRequest include a GasSettings so the user can specify their gas limits and max fees when creating a new tx.

Other changes:

Renamed GasUsed struct to just Gas since it's used for tracking gas used and for tracking gas left depending on the context.
FeePaymentMethod.getFunctionCalls now accepts a GasSettings instead of a flat MaxFee, though the max fee can be calculated from the gas settings.

Docs Preview
Hey there! 👋 You can check your preview at https://661d9e5eca264a390f03b1c4--aztec-docs-dev.netlify.app


Update algebird-core to 0.13.7

Updates com.twitter:algebird-core from 0.13.6 to 0.13.7.
GitHub Release Notes - Changelog - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.twitter", artifactId = "algebird-core" } ]

labels: library-update, semver-patch

we should merge this https://github.com/spotify/scio/blob/v0.9.2/build.sbt#L28


S.Length

🍩 Feature Request
Is your feature request related to a problem?
It is extremely difficult to derive the length of a string using typescript typings.
Unlike the relatively simple way one can get the length of an array:
type Length<T extends Array> = T['length']

type Test = Length<['a', 'b', 'c']> // Test = 3

The length of a string is very hard to determine
type Length<S extends String> = S['length']

type Test = Length<'abc'> // Test = number

Describe the solution you'd like
A first stab at a solution:
type EmptyString = ''
type NonEmptyString<S extends string> = S extends EmptyString
  ? never
  : S

type SingleChar<S extends string> = S extends `${NonEmptyString<infer X>}${NonEmptyString<infer Y>}`
  ? false
  : true

type Head<S extends string> =
  S extends `${infer X}${string}`
  ? SingleChar<X> extends true
    ? X
    : never
  : never

type Tail<S extends string> =
  S extends `${infer X}${infer Tail}`
  ? SingleChar<X> extends true
    ? Tail
    : never
  : never

type HasTail<S extends string> =
  Tail<S> extends EmptyString
  ? false
  : true

type __Length<S extends string, I extends any[] = []> = {
  0: __Length<Tail<S>, Next<I>>
  1: L.Length<I>
}[
  Tail<S> extends EmptyString
  ? 1
  : 0
]

type _Length<S extends string> =
  S extends EmptyString
  ? 0
  : __Length<S> extends infer X
    ? Increment<Cast<X, number>> // Increment here would probably be something like N.Plus<`${Cast<X, number>}`, '1', 'n'>
    : never

type Length<S extends string> =
  _Length<S> extends infer X
  ? Cast<X, number>
  : never

type Test0 = Length<'abc'> // Test0 = 3
type Test1 = Length<''>       // Test1 = 0

This type might be too "beefy" though and could probably be cut down. It also requires the use of TS 4.1.
Describe alternatives you've considered
I've considered putting in a pull request, but the proposed solution probably needs a lot work, so I've made this feature suggestion instead.
Teachability, Documentation, Adoption, Migration Strategy
A function description would probably be sufficient:
Returns the length of S as a Number

Edit: Clarity

Hey @MattRCole,
I would be all in for such a utility. You had a good practise there with the type system there, well done! But I think that we can indeed do shorter by shipping a Split type that will split on '' empty strings and then we can retrieve the length from there - just to keep it all more generic.


something is oddly missing from the DAI !

I noticed that there were no number signs found, when I knew I had corrected the annotation in file 111, utterance 15, since there was a sign ONE-DOLLAR that is a number sign.
Curiously, that entire utterance is missing from the DAI !

THANKS.

This appears to be not an isolated case.  For example, file 112 should have 98 utterances.  But this
is what the database appears to contain:
U1, 2, __, 4, __, __, __, __, __, __, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, ________________  ??

There is also a discrepancy with the statistics in the total number of utterances counted.
This is what is in the SignStream collections -- 554 utterances in all:

But your statistics show 589 utterances:

Here are Excel versions of the utterances and glosses in those SignStream collections, in case it is helpful:
converted-files.zip


Resolve memory leaks caused by adding and commiting to postgres (related to #494)

Description of the problems or issues
Is your pull request related to a problem? Please describe.
Memory leaks happen when Fonduer adds and commits data to postgres after parsing many documents.
This causes OOM killer of Ubuntu and hangup Fonduer process. Please refer to #494.
Does your pull request fix any issue.
One of the memory leak problems is because sqlalchemy keeps all data, which are parsed from documents, on memory untill commit from add.
Description of the proposed changes
Add commit to immediately after add to free memory (L136 of src/fonduer/parser/parser.py).
I’m definitely sure that no side effect happens because no processes exist with the data on the memory after add and commit.
By the way, there are two cases doing commit after multiple add; one is preparing a rollback of inserting data to postgres, and the other is accelerating insert processes for many small data. In contrast, document data in Fonduer are a few large data.
Test plan
Run an existing tests (No additional tests).
Checklist

[x] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] I have updated the CHANGELOG.rst accordingly.

So this PR failes rebase, I close and create new PR.


Application panic when bin execution on Debian server

Describe the bug
Basically got this output from running $ lazydocker (was working previously):
(devbox) blix@mbpdeb:~/dev/homelab$ lazydocker
2024/11/19 17:49:10 An error occurred! Please create an issue at https://github.com/jesseduffield/lazydocker/issues

*exec.ExitError exit status 1
github.com/jesseduffield/lazydocker/main.go:96 (0x964c9a)
internal/runtime/atomic/types.go:194 (0x43cdcb)
runtime/asm_amd64.s:1700 (0x4796e1)

To Reproduce
Steps to reproduce the behavior:
1 Use Debian 12 with no KDE
2 Install devbox (Nix pkg manager environment)
3 $ devbox add lazydocker to install
4 Run $ lazydocker
Expected behaviour
Application running without issues
Screenshots
N/A
Desktop (please complete the following information):

OS: Debian 12
Lazydocker Version [e.g. v0.1.45]: Latest

Sure am:
root@mbpdeb:/home/blix# lazydocker
2024/11/26 13:04:27 An error occurred! Please create an issue at https://github.com/jesseduffield/lazydocker/issues

*exec.ExitError exit status 1
github.com/jesseduffield/lazydocker/main.go:96 (0x964c9a)
internal/runtime/atomic/types.go:194 (0x43cdcb)
runtime/asm_amd64.s:1700 (0x4796e1)
root@mbpdeb:/home/blix#

Are you trying within a devbox shell?
I tried reinstalling the package, and same error.

Sure am:
root@mbpdeb:/home/blix# lazydocker
2024/11/26 13:04:27 An error occurred! Please create an issue at https://github.com/jesseduffield/lazydocker/issues

*exec.ExitError exit status 1
github.com/jesseduffield/lazydocker/main.go:96 (0x964c9a)
internal/runtime/atomic/types.go:194 (0x43cdcb)
runtime/asm_amd64.s:1700 (0x4796e1)
root@mbpdeb:/home/blix#

Are you trying within a devbox shell? I tried reinstalling the package, and same error.

yeah, I run devbox shell and then run lazydocker
It works.

On Debian 12? I'm unsure what it is, if so. It's an almost clean Debian install I have, just barebones server with docker and nix. Maybe not worth diving into further.


New Release?

Hey,
are you planning a new release in the next time?
I see your last release was on 18. Dec '13.
Greetings

Thanks for the nudge @FireLizard!
I'll release the current work done since then until now later this week.

I've just issued a new release - v0.4.0 :-)

Yeah, pretty cool^^
Thank you!

<3

❤


coverage-istanbul does not work with workspaces and SvelteKit

Describe the bug
In a monorepo with a simple SvelteKit app, running coverage with @vitest/coverage-istanbul does not work. Tests pass but collecting coverage fails with the following error:
SyntaxError: /Users/ernest/Projects/Repros/vitest-workspaces-istanbul/packages/web/src/routes/+page.svelte: Support for the experimental syntax 'jsx' isn't currently enabled (1:1):

> 1 |
Welcome to SvelteKit

    | ^
  2 |
Visit kit.svelte.dev to read the documentation

  3 |

Add @babel/preset-react (https://github.com/babel/babel/tree/main/packages/babel-preset-react) to the 'presets' section of your Babel config to enable transformation.
If you want to leave it as-is, add @babel/plugin-syntax-jsx (https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx) to the 'plugins' section to enable parsing.

If you already added the plugin for this syntax to your config, it's possible that your config isn't being loaded.
You can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded configuration:
        npx cross-env BABEL_SHOW_CONFIG_FOR=/Users/ernest/Projects/Repros/vitest-workspaces-istanbul/packages/web/src/routes/+page.svelte <your build command>
See https://babeljs.io/docs/configuration#print-effective-configs for more info.

1  |
Welcome to SvelteKit

   |  ^
2  |
Visit kit.svelte.dev to read the documentation

3  |

Works fine with @vitest/coverage-v8 but I need istanbul (required by @cloudflare/vitest-pool/workers)
Reproduction

Clone repo
Install dependencies (bun install)
Run test script (bun run test) - everything passes
Run coverage script (bun run coverage)

System Info
System:
    OS: macOS 14.5
    CPU: (8) arm64 Apple M1
    Memory: 40.45 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.12.2 - ~/Library/Caches/fnm_multishells/86163_1717766938803/bin/node
    npm: 10.5.0 - ~/Library/Caches/fnm_multishells/86163_1717766938803/bin/npm
    pnpm: 8.9.0 - ~/Library/pnpm/pnpm
    bun: 1.1.12 - ~/.bun/bin/bun
  Browsers:
    Chrome: 125.0.6422.77
    Edge: 125.0.2535.92
    Safari: 17.5
  npmPackages:
    @vitest/coverage-istanbul: 1.5.0 => 1.5.0
    vitest: 1.5.0 => 1.5.0

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

As work-around for now you can set coverage.all: false or configure Svelte plugin in the root vitest.config.ts.
I think this is caused by the root vitest.config.ts not having Svelte Vite plugin, and it fails when transforming uncovered Svelte files here:
https://github.com/vitest-dev/vitest/blob/7cbd943c7bd37ad666dce31537037a53bfdec7cd/packages/coverage-istanbul/src/provider.ts#L304

I'd rather have coverage for all my source files so I went with adding the Svelte plugin to the root vitest.config.ts. It worked in the repro but in my actual project it doesn't - I have an api package which uses @cloudflare/vitest-pool-workers and the api tests fail with:
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

Vitest caught 1 unhandled error during the test run.
This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected.

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Error ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
TypeError: Cannot use require() to import an ES Module.
 ❯ node_modules/chai/lib/chai/utils/inspect.js node_modules/chai/index.mjs%3Fmf_vitest_no_cjs_esm_shim:217:17
 ❯ __require node_modules/chai/index.mjs%3Fmf_vitest_no_cjs_esm_shim:8:50
 ❯ node_modules/chai/lib/chai/utils/objDisplay.js node_modules/chai/index.mjs%3Fmf_vitest_no_cjs_esm_shim:235:19
 ❯ __require node_modules/chai/index.mjs%3Fmf_vitest_no_cjs_esm_shim:8:50
 ❯ node_modules/chai/lib/chai/utils/getMessage.js node_modules/chai/index.mjs%3Fmf_vitest_no_cjs_esm_shim:262:22
 ❯ __require node_modules/chai/index.mjs%3Fmf_vitest_no_cjs_esm_shim:8:50
 ❯ node_modules/chai/lib/chai/utils/index.js node_modules/chai/index.mjs%3Fmf_vitest_no_cjs_esm_shim:749:26
 ❯ __require node_modules/chai/index.mjs%3Fmf_vitest_no_cjs_esm_shim:8:50
 ❯ node_modules/chai/lib/chai.js node_modules/chai/index.mjs%3Fmf_vitest_no_cjs_esm_shim:2725:17
 ❯ __require node_modules/chai/index.mjs%3Fmf_vitest_no_cjs_esm_shim:8:50

When running vitest from the monorepo root - the tests pass when I run it from the packages/api directory. I created a feature/api branch in the repro and found the same issue there with a minimal setup. After some investigation, it seems that the loupe package chai imports has invalid ESM exports (see this issue and the PR). Removing the module field in its package.json fixes everything so I'm not sure whether this is a vitest issue, a chai issue, a loupe issue or a vitest-pool-workers issue as everything works perfectly when I don't add the Svelte plugin to the root vitest.config.ts.

After some more testing, it seems adding the plugin to the root breaks anything that doesn't have exactly the correct package exports. For example, I have a package using unplugin-icons and running coverage on it now fails with:
Error: No known conditions for "./types/svelte" specifier in "unplugin-icons" package

Looking in the package.json of the module, I see it has the following export:
    "./types/svelte": {
      "types": "./types/svelte.d.ts"
    },
    ```

    With no `import` condition which sounds reasonable since it's for types only. However, it breaks because of this so the fix is to add `"import": "./types/svelte.d.ts"`. Next, I have a package which uses `msw` and coverage now fails with:

    ```shell
    Error: No known conditions for "./browser" specifier in "msw" package
    ```

    Which has the following `package.json` export:

    ```json
        "./browser": {
      "types": "./lib/browser/index.d.ts",
      "browser": {
        "require": "./lib/browser/index.js",
        "import": "./lib/browser/index.mjs"
      },
      "node": null,
      "require": "./lib/browser/index.js",
      "import": "./lib/browser/index.mjs",
      "default": "./lib/browser/index.js"
    },
    ```

    And this is fixed by simply moving the `import` condition up, above the `browser` condition.

I just want to add that this is documented: https://vitest.dev/guide/workspace.html#coverage


Inference: ability to parallelize (multi-gpu) inference on a single image

Currently GDL doesn't have the capacity to infer a single image on multiple GPUs (i.e. parallel forward pass).
The issue becomes urgent the moment we infer on very large images, which has been the case lately at NRCan with images over 48k x 48k pixels (BC_16).
For AI as a service, this feature will be either helpful or necessery to offer a better "user experience" (@ymoisan)
Some suggestions for implementation:

Read image --> split --> save into temporary thdf5s --> use dataloaders the same way we use them for training, allowing inference on 2+ gpus.
Read image and keep in memory until inference is finished --> feed bits of it (not sure how exactly) to our model. Is there a pytorch dataloader that can deal with this more "dynamic" approach? This second approach needs some further thinking but could help infer more quickly than approach 1.

Any thoughts?

I would implement DataParallel for inference and no more for now.  I think the problem is more one of maximizing inference speed rather than being able to handle huge images.  Maybe we should have a service to extract "sub-images" from huge COGs and supply those sub-images for inference on (potentially) more than one GPU.  That is, until we can actually stream the COGs in the inference engine dynamically.

@ymoisan naturally, we will need DataParallel. The problem is Dataparallel intimately works with a Pytorch Dataloader. We don't use a Dataloader currently at inference. Therefore, I send you back to my two ideas. We'll need to elaborate on the simplest/best solution for fast/efficient inference.

Consideration:

How does this conflicts/interact with test-time augmentations (which takes up quite a bit of GPU memory, same as batching the process)?

Another consideration:

The more GPUs are required on HPC, the more the chances of delaying job execution

Consideration:

How does this conflicts/interact with test-time augmentations (which takes up quite a bit of GPU memory, same as batching the process)?

I'm pretty sure TTA could be used easily in a multi-GPU execution (managed by pytorch/pytorch-lightning) with DataParallel or DistributedDataParallel). Using more than 1 gpu could potentially speedup the inference process when TTA is used. The simplest implementation would be for GPUs to process different tiles from the source imagery and be able to write to a common numpy array. Tests would be needed as this is not Pytorch's default use case.

Another consideration:

The more GPUs are required on HPC, the more the chances of delaying job execution

Indeed. In the context or deploying on HPC, we would greatly benefit from having GPUs with 32gb ram rather than 16gb for inference. The pros of bigger GPU would definitely outweight the pros of multi-gpu inference in our current setup, since a bigger gpu needs no further development effort...

Just tested gpu inference using torchgeo templates and pytorch lightning (PL). I had in mind to make it work with a single gpu in a PL context. Then, porting to multi-gpu would have been just a question of settings gpus to more than 1 (PL default to ddp-spawn).
It seems multi-gpu feature in PL is mostly aimed at training/validation. See:
https://stackoverflow.com/questions/65807601/output-prediction-of-pytorch-lightning-model
For example, PL-Trainer's auto_scale_batch_size is really only aimed at training. Here's the error I got when trying for inference:
pytorch_lightning.utilities.exceptions.MisconfigurationException: No training_step()method defined. LightningTrainerexpects as minimum atraining_step(), train_dataloader()andconfigure_optimizers()to be defined.
Just for the record here's essentially the code version for my best trial (see inference_segmentation.py in my 222-stac-item-input branch for the rest):
    checkpoint, hparams = gdl2pl_checkpoint(checkpoint)
    [...]
    task = InferenceTask(checkpoint, **hparams)
    trainer_args = {}
    trainer_args["default_root_dir"] = dm.root_dir

    dm.batch_size = task.batch_size = 4
    trainer = Trainer(auto_scale_batch_size=True, gpus=0, precision=16, **trainer_args)
    trainer.tune(task)
    predictions = trainer.predict(model=task, datamodule=dm, return_predictions=True, ckpt_path=checkpoint)

In any case, I'm closing this issue as multi-gpu inference is not really a need we have. We'd rather run multiple inferences at once on different images and use one gpu per image, then using multigpu approach on a single image.


New version: manosim.gitify version 4.4.0

Pull request has been created with WinGet Automation :rocket:
Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:


picamera.exc.PiCameraRuntimeError: Timed out waiting for capture to end

Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/picamera/camera.py", line 1704, in capture_continuous
'Timed out waiting for capture to end')
picamera.exc.PiCameraRuntimeError: Timed out waiting for capture to end
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.7/dist-packages/imutils/video/pivideostream.py", line 39, in update
for f in self.stream:
File "/usr/lib/python3/dist-packages/picamera/camera.py", line 1710, in capture_continuous
encoder.close()
File "/usr/lib/python3/dist-packages/picamera/encoders.py", line 431, in close
self.stop()
File "/usr/lib/python3/dist-packages/picamera/encoders.py", line 419, in stop
self._close_output()
File "/usr/lib/python3/dist-packages/picamera/encoders.py", line 349, in _close_output
mo.close_stream(output, opened)
File "/usr/lib/python3/dist-packages/picamera/mmalobj.py", line 371, in close_stream
stream.flush()
File "/usr/lib/python3/dist-packages/picamera/array.py", line 238, in flush
self.array = bytes_to_rgb(self.getvalue(), self.size or self.camera.resolution)
File "/usr/lib/python3/dist-packages/picamera/array.py", line 127, in bytes_to_rgb
'Incorrect buffer length for resolution %dx%d' % (width, height))
picamera.exc.PiCameraValueError: Incorrect buffer length for resolution 1920x1080

I have encountered this quite a lot. I haven't found very much else on this subject covered by anyone. The problem happens after the camera has been running for a few days. Sometimes I can get the camera to run for a week. But not much more. The problem at this point is that you have to stop running Python and restart to get it going again.
If you take a look at the file where you are getting it - camera.py - Line 1704 (now 1717) you will see the error is raised when it doesn't get the frame within the timeout. After the encoder.start(output), if calls the "wait" function with the CAPTURE_TIMEOUT. If it doesn't receive a frame within that time, it raises the error. It is just a bit of a fatal error.
We need a bit more of an elegant resolution here. We can expect the camera to not respond at some point to the request to prepare a frame. In this case, can we return either an empty frame, or the last frame?