text:
Optimizations for using in components

When this library is used in components with life-cycles (e.g. react), capabilities of unregistering a single relative time instance is critical.
Current implementations have several disadvantages in such circumstances:

Does not support canceling timer for a singular DOM in a timeago instance. Instead all timers in the instance are cancelled. Because of this, we need to create a timeago instance for every single relative time instead of create one and share, which is really slow when there are many relative times to display (e.g. long lists).

Does not share member functions across timeago instances so that every timeago instance needs more memory, which makes it even worse --> Please use prototypes to eliminate the memory cost.

Is timeago-react can help ?

I don't know how cancel the timer for just one DOM node, maybe need a map to save something.

Done it with prototypes before, but will increase some file size, but not very big, I will redo it, thank you.

@hustcc @breeswish I added prototypes support in #110. Please, review it.
For now doRender member is put in prototype too, because I think it could be better optimized before moving it to private members. For example:

Do we really need cnt parameter? As far as I see it doesn't make any sence. @hustcc , correct me if I'm wrong.
Do we really need 'k' prefix here?
If we move it to privates, then parameter list will grom from 4 to 6, because we need move this.nowDate and this.defaultLocale out of body to parameters.

So, I believe, for now we can leave this method in prototype as it is and make a single issue for optimizing just render and doRender methods later.

#110 for optimizations.

@hustcc please, note, that #110 doesn't include dist files, and it also adds additional 2kb to minified version (I checked it locally)

I review the code, there has no meaning of the timer key in array, so we remove the code about.

@hustcc will you make it?

OK.

In #111 I tried to add support for cancellable timers, the idea is:

Add map of nodes and timers: timerId => node
Clear timer and delete it from the map by passing node's reference to cancel(node) method.

details inside the pr

@breeswish Is pr #111 can satisfy you need ?

Great work! @likerRr
I guess the time complexity of canceling a single timer can be improved from O(n) to O(1): by storing the timer id to the node itself we could lookup timer id faster. However it may bring potential memory leak in old browsers (need more research on this). Ideas?

@breeswish do you mean using datasets?

Only in (very) old browsers which doesn't support datasets, e.g. IE 6. LOL

Save in datasets maybe better then object.

O(n) to O(1)
No need to to judge whether they are the same nodes exactly (node1 === node2).
When use real-time render, we should set the date into node attribute or datasets, and dependent on DOM attribute or datasets.

@hustcc I updated the #111 . Please review and  I think you can optimize it

OK~

@breeswish
import timeago from "timeago.js"

timeago.cancel(); // cancel all the real-time
timeago.cancel(node); // cancel a single node (native node or jq node)'s real-time render.

When start a timer, will save timer's id(int) into data-tid, and when cancel one node, will read the attribute date-tid, then clearInterval it.
Can this will be OK ? or other suggestions.

I think it's good enough :)

authors: breeswish hustcc likerRr


text:
About 2 FPS

Noticing that there are 2 FPS printed(test and vedio) while rendering and they have a large difference in numerical data,would you mind telling me what causes such difference?

when loading the test dataset, the gt image should also be loaded at the same time. it will decrease the rendering speed.

source: gharchive/issue

authors: guanjunwu hdkcn

license_type: permissive

license_source: github-api


text:
-n not work

i want it download with 5 connections but it download with 2 connections .
./hget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.8.10.tar.xz -n 5
INFO: Resolve ip: 151.101.60.69
INFO: Start download with 2 connections
INFO: Download target size: 87.7 MB
linux-4.8.10.tar.xz-0 800.15 KB / 43.86 MB [>--------------------]   1.78% 2m57s
linux-4.8.10.tar.xz-1 735.48 KB / 43.86 MB [>--------------------]   1.64% 3m13s
INFO: Interrupted, saving state ...

yes ,  seems -n not work

./hget [file_to_download] -n 2  not works
./hget -n 2 [file_to_download]  works for me

Flags in Go have certain behavior. There is a quote from the docs:

Flag parsing stops just before the first non-flag argument ("-" is a non-flag argument) or after the terminator "--".

So I suggest that it would not be fixed because of the Go package design.

so it seems that this is just usage problem, so i will close this issue

This is still an issue.
Even when running hget --help its indicated that it's acceptable to use the flags after the URL.

authors: Mehran droideck huydx kriyss mehranexpert zQueal

repo: huydx/hget

license: mit

license_source: bigquery


text:
Make a robust test suite

Before making a UI, I need to make sure the core theorem prover is sound.

I've made some progress here: https://github.com/huynhtrankhanh/AlternateFace/commit/645ee1c83e8b3d1e71028f4401b5add45635beed. The test suite is still not comprehensive but it's a good starting point.

More progress. https://github.com/huynhtrankhanh/AlternateFace/commit/2e0f3ab2bb1aec397980aaa6db0e6cb53448cb73
I still need to test sentence scheme validation and definition validation. After that, the validation part is tested and I can test other methods.

I just installed Stryker. That's it. Won't be using it until the test suite is more comprehensive.

I won't stop adding tests to the sentence validation suite until I manage to kill all mutants in validate sentence.

I killed even more mutants. Now I need to test the "witness of exported existential" case.

I've killed all validateSentence mutants. Time to test other methods.

My next target is going to be substituteIntoBinder. I have to test it!

I have a hunch that the code for substituteIntoBinder is not quite right. Let me review it.

Oh. #2. I didn't read the code carefully. It is solid.

OK, I added tests for substituteIntoBinder. Done!

Alrighty Khanh, here is a list of methods that you need to test. Remember to check the boxes when you are done testing a function.

[ ] resolveGoal
[ ] excludedMiddle
[ ] forall
[ ] substituteIntoForall
[ ] exists
[ ] getWitness
[ ] exportSentence
[ ] getExportedWitness
[ ] leftSideOfAnd
[ ] rightSideOfAnd
[ ] imply
[ ] modusPonens
[ ] introduceConjunction
[ ] introduceDisjunctionLeft
[ ] introduceDisjunctionRight
[ ] disjunctionImply
[ ] notForall
[ ] notExists
[ ] exfalso
[ ] rewrite
[ ] define
[ ] foldOrUnfoldDefinition
[ ] applySentenceScheme
[ ] proveSentenceScheme

Oops, it looks like I can't test everything. Anyway, the code looks solid enough so I'm closing this issue.

repo: huynhtrankhanh/AlternateFace


text:
Fallback babel to ^.8.38 first, cc #428 #429

This pull request is now managed with CodeReviewHub. Refresh.

In #428, babel upgraded from v5 to v6 make a problem caused the app not work, so fallback to ^5.8.38 first, tested working. Let's make it work first, then see how to upgrade without breaking, maybe should also add more tests to increase the code coverage in test.

I fixed the export issues in c710741, so this is not necessary anymore.

Great :+1:

source: gharchive/pull-request

authors: PeterDaveHello abalabahaha huytd


text:
Invalid flag name: "bytestring--lt-0_10_4"

While trying to generate a stack.yaml for jtdaugherty/tart, I ran into the following error about the bytestring--lt-0_10_4 flag:
$ stack init --solver --resolver=nightly
Looking for .cabal or package.yaml files to use to init the project.
Using cabal packages:
- tart.cabal

Selected resolver: nightly-2017-08-14
Selected resolver: nightly-2017-08-14
Downloaded nightly-2017-08-14 build plan.
AesonException "Error in $.packages.cassava.constraints.flags['bytestring--lt-0_10_4']: Invalid flag name: \"bytestring--lt-0_10_4\""

I'm afraid I'll have to redirect you to the Stack issue tracker, as this is a bug in Stack. The package works perfectly fine with cabal & hackage.

stack upgrade should fix this

authors: bwbaugh hvr johnmendonca

repo: hvr/cassava


text:
hwameistor schedule error when a bunch of pods are creating

There are 3 nodes in my k8s cluster with v0.14.1 Hwameistor like this:
root@pw-k8s01:~# kubectl get node
NAME       STATUS   ROLES                                    AGE   VERSION
pw-k8s01   Ready    control-plane,controlplane,etcd,master   58d   v1.28.3+rke2r2
pw-k8s02   Ready    control-plane,controlplane,etcd,master   56d   v1.28.3+rke2r2
pw-k8s03   Ready    control-plane,controlplane,etcd,master   56d   v1.28.3+rke2r2

Every node has a capacity of 20G for LVM. Then I apply a test yaml file(There are 4 pods and 4 pvcs whose requests storage is 6G.):
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pw-pvc1
spec:
  volumeMode: Block
  storageClassName: hwameistor-storage-lvm-hdd
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 6Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pw-pvc2
spec:
  volumeMode: Block
  storageClassName: hwameistor-storage-lvm-hdd
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 6Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pw-pvc3
spec:
  volumeMode: Block
  storageClassName: hwameistor-storage-lvm-hdd
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 6Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pw-pvc4
spec:
  volumeMode: Block
  storageClassName: hwameistor-storage-lvm-hdd
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 6Gi
---
apiVersion: v1
kind: Pod
metadata:
  name: pw-pod-1
spec:
  containers:
    - name: busybox
      image: busybox:1.31.1
      command:
        - sleep
        - "360000000"
      imagePullPolicy: IfNotPresent
      volumeDevices:
        - name: temp-pvc
          devicePath: /dev/temp-disk
  terminationGracePeriodSeconds: 0
  volumes:
    - name: temp-pvc
      persistentVolumeClaim:
        claimName: pw-pvc1
---
apiVersion: v1
kind: Pod
metadata:
  name: pw-pod-2
spec:
  containers:
    - name: busybox
      image: busybox:1.31.1
      command:
        - sleep
        - "360000000"
      imagePullPolicy: IfNotPresent
      volumeDevices:
        - name: temp-pvc
          devicePath: /dev/temp-disk
  terminationGracePeriodSeconds: 0
  volumes:
    - name: temp-pvc
      persistentVolumeClaim:
        claimName: pw-pvc2
---
apiVersion: v1
kind: Pod
metadata:
  name: pw-pod-3
spec:
  containers:
    - name: busybox
      image: busybox:1.31.1
      command:
        - sleep
        - "360000000"
      imagePullPolicy: IfNotPresent
      volumeDevices:
        - name: temp-pvc
          devicePath: /dev/temp-disk
  terminationGracePeriodSeconds: 0
  volumes:
    - name: temp-pvc
      persistentVolumeClaim:
        claimName: pw-pvc3
---
apiVersion: v1
kind: Pod
metadata:
  name: pw-pod-4
spec:
  containers:
    - name: busybox
      image: busybox:1.31.1
      command:
        - sleep
        - "360000000"
      imagePullPolicy: IfNotPresent
      volumeDevices:
        - name: temp-pvc
          devicePath: /dev/temp-disk
  terminationGracePeriodSeconds: 0
  volumes:
    - name: temp-pvc
      persistentVolumeClaim:
        claimName: pw-pvc4

root@pw-k8s01:~/pangwei/yaml# kubectl apply -f local-pvc-test.yaml
persistentvolumeclaim/pw-pvc1 created
persistentvolumeclaim/pw-pvc2 created
persistentvolumeclaim/pw-pvc3 created
persistentvolumeclaim/pw-pvc4 created
pod/pw-pod-1 created
pod/pw-pod-2 created
pod/pw-pod-3 created
pod/pw-pod-4 created

You can see:
root@pw-k8s01:~/pangwei/yaml# kubectl get pod -o wide
NAME       READY   STATUS    RESTARTS   AGE     IP              NODE       NOMINATED NODE   READINESS GATES
pw-pod-1   1/1     Running   0          6h15m   100.65.76.184   pw-k8s03   <none>           <none>
pw-pod-2   1/1     Running   0          6h15m   100.65.76.185   pw-k8s03   <none>           <none>
pw-pod-3   1/1     Running   0          6h15m   100.65.76.183   pw-k8s03   <none>           <none>
pw-pod-4   0/1     Pending   0          6h15m   <none>          <none>     <none>           <none>

You can find error log:
time="2024-03-19T07:03:49Z" level=debug msg="Filtered out the node" error="can't schedule the LVM volume to node pw-k8s03" node=pw-k8s03 pod=pw-pod-4
I0319 07:03:49.095941       1 scheduler.go:351] "Unable to schedule pod; no fit; waiting" pod="default/pw-pod-4" err="0/3 nodes are available: 1 can't schedule the LVM volume to node pw-k8s03, 2 node(s) didn't find available persistent volumes to bind. preemption: 0/3 nodes are available: 1 No preemption victims found for incoming pod, 2 Preemption is not helpful for scheduling."

Pvc pw-pvc4 is like this:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"name":"pw-pvc4","namespace":"default"},"spec":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"6Gi"}},"storageClassName":"hwameistor-storage-lvm-hdd","volumeMode":"Block"}}
    volume.beta.kubernetes.io/storage-provisioner: lvm.hwameistor.io
    # As you can see, pvc has been scheduled to pw-k8s03
    volume.kubernetes.io/selected-node: pw-k8s03
    volume.kubernetes.io/storage-provisioner: lvm.hwameistor.io
  creationTimestamp: "2024-03-19T03:22:17Z"
  finalizers:
  - kubernetes.io/pvc-protection
  name: pw-pvc4
  namespace: default
  resourceVersion: "56041423"
  uid: eea7fed7-fff1-4304-b4ce-fa1b06e4c942
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 6Gi
  storageClassName: hwameistor-storage-lvm-hdd
  volumeMode: Block
status:
  phase: Pending

Pod pw-pod-4 and Pvc pw-pvc4 keep pending even though there are enough capacity in node1/node2.

I've learned hwameistor scheduler source code. In my opinion, there are some problems in hwameistor scheduler:

Lack of reservation mechanism. Currently, there is a window period between LV being scheduled to a certain node and actual creation and resource recording to lsn. Therefore, there is a lag in resource recording. During the window period, if a bunch of pods need to be created, it can lead to: 1. Nodes with insufficient resources can pass Filter function in scheduler  2. There is no obvious difference between node scores. The above reasons finally make pods be scheduled to a same node. After scheduling to a node, the creation may fail due to insufficient resources.
Lack of reschedule mechanism. After LV is scheduled to a certain node, insufficient resources lead to LV creation failure. The CSI interface(hwameistor) should be implemented correctly to enable pvc reschedule.

This issue looks very similar to https://github.com/hwameistor/hwameistor/issues/1424.

repo: hwameistor/hwameistor


text:
Removing 'Executed By' relation from Add Relation dialog

As requested by @horsburgh.

This was requested by @goodalljl  to address issues with potential confusion over where relationships between model programs and model instances should be created. Jon and Mohamed already have this in the model specific metadata and so we removed it from the generic metadata to avoid confusion.  Thanks @mauriel133

Tested on dev.hydroshare.org and has been implemented. Closing.

repo: hydroshare/hydroshare


text:
ApplicationCertificate in client option

This is not really an issue but I dont know where to ask help.
I am new to OPC and I would like to have some help on how to set up the application certificate to connect to a server.
Thanks to all.
Frank !

HI @gfbaggio
I know its a super late reply, but I assume this still may help someone. If when connecting you are seeing the exception that certificate is required. The solution below assumes you have a X509 certificate present as a file, if not, you can easily create one and then add that certificate as a trusted client certificate in your opc server(for Kepware this is done by: right clicking the kep ServerEx tray, Open OPC UA Configuration manager and then add then import the certificate file to the trusted clients tab)
Add the following code before you call the .connect method
         var options = new UaClientOptions {};

        // The path to the certificate.
        string Certificate = @"C:\ProgramData\OPC Foundation\CertificateStores\MachineDefault\certs\cert.der";

        // Load the certificate into an X509Certificate object.
        X509Certificate2 cert = new X509Certificate2();

        cert.Import(Certificate);
        options.ApplicationCertificate = cert;

authors: gfbaggio noumanqaiser

repo: hylasoft-usa/h-opc


text:
Read Value with NodeID

Hi,
how can i read a value with the NodeID?
Example:    ns=1;i=160
var myString = client.Read("ns=1;i=160").Value;       don't work....

hi...  Have solved ? I have the same issue.

authors: Marcofelixiano sallos


text:
Update README.md for hypatia/

Signed-off-by: Mike Waychison mike@waychison.com

Thanks. Sorry for my goof earlier!

authors: dancrossnyc waych

repo: hypatia-hypervisor/hypatia

license: MIT


text:
[QUESTION] Custom Header for Server-Sent-Events

Hi, First of all I just want to thank you for this awesome Hyperf project.
I just want to ask how can I add custom header like text/event-stream? I have red the documentation with the help of Google Translate (because sometimes it goes back to Chinese language) :) but I saw json, xml and raw only.
~ I'm a new user of Hyperf by the way :)

<?php

    use Psr\Http\Message\ResponseInterface;
    use Hyperf\HttpMessage\Stream\SwooleStream;

    public function test()
    {
        $response = Context::get(ResponseInterface::class);

        return $response->withAddedHeader('Content-Type', 'text/event-stream')->withBody(new SwooleStream('xxx'));
    }

Thank you but I got this error Class 'App\Controller\Context' not found.
Where can I found the custom header implementation in the documentation.

use hyperf/utils/context

I'm just wondering. I got the message in my console.log but I don't get any message in my EventStream under Network Tab. And it's kinda weird because it always create an "sse" resource instead of "appending" the message in EventStream.

最新版本支持了

https://assert6.com/2021-03-27/hyperf/【手把手教你】Hyperf 接入OpenAI (ChatGPT)/

repo: hyperf/hyperf


text:
\Hyperf\DbConnection\Listener\InitTableCollectorListener

TypeError: Hyperf\Database\Schema\Column::__construct(): Argument #4 ($position) must be of type int, string given,

什么版本


text:
[BUG] 文件存储版本的session无效

文件存储版本的session无效，打印的sessionid每次都不一样，而且前端没有set-cookie头，session文件数量一直在增加，其实是我一个人访问
使用的是swow

仅Swow版本的Session失效，与存储无关。
Swow
hyperf/engine-swow的Hyperf\Engine\ResponseEmitter无PSR7的getCookies处理，swoole版本有。详细见下图：

Swoole


text:
support aarch64

Signed-off-by: Gao feng omarapazanadi@gmail.com

Tested on pine64. LGTM

My test shows this initial support works fine, could we merge it, @laijs ?

authors: gao-feng gnawux

repo: hyperhq/hyperstart


text:
RedirectPolicy should not follow unsafe methods

The Hyper client doesn't resend the body when following redirect requests.
Snippet of the issue:
let client = Client::new();
let payload_contents = "a test payload";
let result = client.request(Method::Put, "http://localhost:8080/").body(payload_contents).send().unwrap();

When testing with https://github.com/matthewkmayer/redirtester , I see this:
2015/08/31 14:07:29 In redirect, got a body of  a test payload
2015/08/31 14:07:29 After redirect, got a body of

When testing the same program with Postman, I get:
2015/08/31 14:01:59 In redirect, got a body of  bleh1
2015/08/31 14:01:59 After redirect, got a body of  bleh1

Found when trying to follow a 307 redirect and the server responded with an error, stating the client computed payload SHA didn't match the server's calculated payload SHA.  They calculated an empty string.
My redirtester program has an OSX binary in there if you don't have Go installed.

Looking in the spec, redirection of methods should only be done automatically for 'safe' methods, which PUT is not.
So, this would require config to explicitly redirect the method and payload even if method.is_safe() is false. Perhaps a modification to the RedirectPolicy enum. Also, this might be tricky with the body being a Reader. Once the body has been copied into the request body, it probably can't be re-read again...

I agree on both accounts: the behavior should be adjusted, and document should be updated to reflect that adjustment.
It'd probably also be useful to improve the design of FollowIf, to provide enough information to implement a sort of FollowUnsafe that one requires. That'd need the Method, Url, and anything else?

A good first step would be to allow following all redirects.
If I'm understanding right, you describe something more fine-grained where a user can specify to only follow certain verbs and destinations.  EG "only follow redirects for PUTs to this URL."  Is that right?
If so, that's more work and I'm not sure of what use cases it would be useful for.

The FollowIf policy would actually need mutable access to headers as well. The RedirectPolicy cannot be used in servo yet, since depending on the method, some headers must be removed or added. They also keep track of every Url seen, so that redirect loops can be detected and aborted. But that's probably worth a separate issue, so the action here is a FollowSafe policy.

FYI in my project I switched to FollowNone and handled the redirect in my code.  I think that was the only option available to me due to signed header authorization that includes the destination host name.  Works like a charm!

I'm removing RedirectPolicy in the async branch.

authors: matthewkmayer seanmonstar

repo: hyperium/hyper


text:
Docker build fails on local machine

Describe the bug
The Docker build process seems to be broken.
To Reproduce
Steps to reproduce the behavior:

Clone the project
Issue a npm run build -w --packages/notification/ to build dependencies packages
Issue a npm ci to pull dependencies
Issue a make docker at the project root

Expected behavior
Docker build is expected to run until completed.
Screenshots

Desktop (please complete the following information):

OS: WSL2 (Ubuntu 24.04) under WIndows 11 and linux Ubuntu 22.04 LTS.
Monika: from main branch commit: (d5564bf67a6ade81ec1efc2368b0e1a73188af84)
Console where the commands are run on both OS is bash

Note:

Not seeing the error in the docker build pipeline

This will be marked as close as this problem was solved by #1304

authors: dennypradipta sapiderman

repo: hyperjumptech/monika


text:
Whitepaper

Description
As a person who is considering using BIF I want to be able to get a solid understanding of what BIF can and cannot be used for and what the architecture/implementation is like internally so that I can make educated decisions about adopting BIF or not based on a single source of truth document that is self-contained and coherent.
(add more description and relevant links)
Acceptance Criteria

Produce a markdown file serving as the whitepaper
Ensure it has a table of contents
Ensure citations are properly done as per universal standards
Worry about the 2 columnar format of scientific papers later.

Fixed by #98


text:
ACA-Py Agent throwing 500 internal server error at Proof Presentation

Issue:
Following the step Alice - Responding to Proof Request, in https://github.com/hyperledger/aries-cloudagent-python/blob/main/demo/AriesOpenAPIDemo.md#faber-sends-a-proof-request, with similar POST body, it returns 500 Internal Server Error
Steps to Reproduce:
Scenario: ACME (In my case, but could be Faber) sends successful Proof Request to Alice with:
url = 'http://localhost:8041/present-proof/send-request'
credential={
"connection_id": alice_conn,
"proof_request": {
"name": "Proof of Education",
"version": "1.0",
"requested_attributes": {
"0_name_uuid": {
"name": "name",
"restrictions": [
{
"cred_def_id": credential_def
}
]
},
"0_date_uuid": {
"name": "date",
"restrictions": [
{
"cred_def_id": credential_def
}
]
},
"0_degree_uuid": {
"name": "degree",
"restrictions": [
{
"cred_def_id": credential_def
}
]
},
"0_self_attested_thing_uuid": {
"name": "self_attested_thing"
}
},
"requested_predicates": {
"0_average_GE_uuid": {
"name": "average",
"p_type": ">=",
"p_value": 4,
"restrictions": [
{
"cred_def_id": credential_def
}
]
}
}
}
}
json_credential = json.dumps(credential)
r = requests.post(url, data = json_credential)
Alice receives proof request:
URL='http://localhost:8031/present-proof/records'
r=requests.get(URL)
Alice gets credential from wallet:
URL='http://localhost:8031/credentials'
Prepare to send proof to ACME:
url=http://localhost:8031/present-proof/records/2971fbf7-7af2-42be-8840-bade4829a623/send-presentation
json_proof: {"requested_predicates": {"0_average_GE_uuid": {"cred_id": "56c5c5dd-8483-4c12-a27d-1513d9a013ae", "revealed": true}}, "requested_attributes": {"0_name_uuid": {"cred_id": "56c5c5dd-8483-4c12-a27d-1513d9a013ae", "revealed": true}, "0_date_uuid": {"cred_id": "56c5c5dd-8483-4c12-a27d-1513d9a013ae", "revealed": true}, "0_degree_uuid": {"cred_id": "56c5c5dd-8483-4c12-a27d-1513d9a013ae", "revealed": true}}, "self_attested_attributes": {"0_self_attested_thing_uuid": "my self-attested value"}}
Alice sends send-presentation to ACME
r = requests.post(url, data = json_proof)
<Response [500]>
500 Internal Server Error
Server got itself in trouble
Expected Outcome:
200 code
Workaround:
At 200 response body of URL GET http://localhost:8041/present-proof/records/970a79f5-85b0-4937-a3a2-9b300817b8f0 in ACME, there is an indication, requested_proof parameter is present, when state is presentation_received. (it was noticed that predicates field comes empty if condition is not matched, if it is matched, it comes like
"predicates": {
"0_average_GE_uuid": {
"sub_proof_index": 0
}
}
)
Test Cases Affected:
https://github.com/hyperledger/aries-cloudagent-python/blob/main/demo/AriesOpenAPIDemo.md#faber-sends-a-proof-request
Probable Side Issue:
Hypothesis 1: Functional redundancy. If as shown in Workaround, proof is really received, and automatically, there is no need "Alice sends send-presentation to ACME". This hypothesis looks making sense as  presentation has been received by ACME, by using GET http://localhost:8041/present-proof/records/970a79f5-85b0-4937-a3a2-9b300817b8f0.  Even failed send-presentation.
Nevertheless, the POST http://localhost:8041/present-proof/records/970a79f5-85b0-4937-a3a2-9b300817b8f0/verify-presentation returns 500 code, what means that this hypothesis is FALSE.
Hypothesis 2: It is missing extra information (e.g. encoding) in the POST body. In this case, no idea how it happens the encoding.
Hypotheses 3: it is superseed or missing procedure in http://localhost:8031/present-proof/records/2971fbf7-7af2-42be-8840-bade4829a623/send-presentation

Note: If Hypothesis 2 is correct, which would be the correct syntax for the POST body of  /present-proof/records/pres-ex-id/send-presentation? If there is encoding missing, what should it be? (BASE64?) Proof build looks missing more examples.

Severity: Medium
Business Priority: Medium

Sorry, disregard this issue. It is a version problem. The link
https://kctheservant.medium.com/demonstration-of-hyperledger-aries-cloud-agent-6e476a5426b0
uses old version of ACA-PY.
The new version on
https://github.com/hyperledger/aries-cloudagent-python
is OK.
Sorry

repo: hyperledger/aries-cloudagent-python


text:
Goal and Goal Code in invitation URL.

Add a unit test to ensure goal/goal code are in the encoded invitation URL.
Fixes #2583

Awesome — thanks.  I was going to make the change myself, but the test — not that.  Nice!

authors: swcurran usingtechnology


text:
FIx a description of the agent option

Among the options for '--wallet-storage-type' that were not previously supported, 'indy' was modified to 'default'.
For this problem, if you follow the description of the option and set it to 'indy', you will receive an error of 'Unknown wallet storage type'.
This is received from the indy library and only handles the 'default' option as a map in the WalletService of the indy library, and does not add the 'indy' option.
So I modified & reinforced the description of '--wallet-storage-type'.

Codecov Report

Merging #689 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #689   +/-   ##
=======================================
  Coverage   98.98%   98.98%
=======================================
  Files         252      252
  Lines       13620    13620
=======================================
  Hits        13482    13482
  Misses        138      138


text:
In example, Bob acks only having stored payload as per pic in RFC 36

This tiny change is bigger on the inside: it syncs up the example to the pic, which changes processing order in aca-py. On the other hand, one might argue that the prior wording implied credential storage as per the diagram, in which case one ought to reject this change for simplicity.
Signed-off-by: sklump srklump@hotmail.com

This change feels very reasonable to me. It captures the likely intent of the ACK. Note, however, that there is no way to enforce the requirement that the ACK be returned once storage has occurred; all we can do is document desired behavior.

repo: hyperledger/aries-rfcs


text:
Test LZ4_COMPRESSION on all RocksDB column families

By default, RocksDB uses Snappy compression algorithm, but from RocksDB documentation, we can read that "LZ4 is almost always better than Snappy".
Signed-off-by: Ameziane H ameziane.hamlat@consensys.net

PR description
Fixed Issue(s)

Documentation

[ ] I thought about documentation and added the doc-change-required label to this PR if
updates are required.

Changelog

[ ] I thought about the changelog and included a changelog update if required.

Confirmed, Besu ended up using ~13 GB (6.5 GB in RAM, 6.5 GB in swap) with this changeset. Testing the old Snappy behavior had it at ~3 GB in RAM and no swap. I'll test again with LZ4 enabled but none of the other explicit cache settings specified and see how it does.

After running LZ4 without any of the other manual settings (i.e. using this build) Besu has been happily syncing on Mainnet with my Pi using 4.5 GB of RAM and no swap space. It's at ~24% after 5 hours. This configuration is quite promising.

@garyschulte and @jclapis : Sorry for the inconvenience, this is a draft PR, so I used the same PR to do some other tests related to RocksDB configuration, not only LZ4 compression.

Other new tests are done in this PR #4166

authors: ahamlat jclapis

repo: hyperledger/besu


text:
Add getForNextBlockHeader to protocol schedule

PR description
Replace usages of ProtocolSchedule.getForBlockNumber that are being used for the next block by adding a getForNextBlockHeader method.

Adds a getForNextBlockHeader method to the HeaderBasedProtocolSchedule
Fixes a bug using the UnsignedIntParameter in RPC methods, this was causing the eth_feeHistory RPC to fail

Testing

[x] Sync on Goerli
[ ] Sync on mainnet
[x] Besu and Teku on a local interop network using Shanghai
[x] QBFT single validator node
[x] EthHash single node
[x] Manual testing of the eth_feeHistory

Fixed Issue(s)

fixes #5159
Documentation

[x] I thought about documentation and added the doc-change-required label to this PR if
updates are required.

Acceptance Tests (Non Mainnet)

[x] I have considered running ./gradlew acceptanceTestNonMainnet locally if my PR affects non-mainnet modules.

Changelog

[x] I thought about the changelog and included a changelog update if required.

Is the ProtocolSchedule interface going to be removed at some time?

@fab-10 Current plan is to unify MutableProtocolSchedule and DefaultTimestampSchedule. Having a ProtocolSchedule interface may still make sense though, since other schedules exist outside of mainnet.

authors: jframe siladu


text:
Reduce UInt256 in EVMOperations

PR description
Improve the performance of the EVM by reducing the usage of UInt256 in almost all operations and moving the main switch to a Java 17 expression switch
Fixed Issue(s)

Benchmark results - https://docs.google.com/spreadsheets/d/1qbvlAveoLCiWbhbxouHgcpFeDVjws7UD0dgZghJZ6oU/edit?usp=sharing
Macbook Pro M1 MAX
Top line result - 10-15% "all in"
Target opcodes - 100-500% improvement.  Most notably in JumpDest& SDIV

@shemnon should this get a changelog entry?

Before I press Merge I was going to give it a day or so on Marius's fuzzer.  It found the other corner cases fairly quickly.

How did it go? @shemnon

Fuzz testing was useful.

authors: macfarla non-fungible-nelson shemnon


text:
Make maintained PoA bootnode connections configurable

PR description
This PR follows on from https://github.com/hyperledger/besu/pull/7257. Specifically it makes the behaviour configurable and defaults to off. Since the 25.7.0 release has just gone out this PR will technically be a change in behaviour, so I'll add a change log entry accordingly. However, assuming this PR is included in an upcoming release I don't imagine any users will be affected by the behaviour change.
In an enterprise network with a large number of nodes, maintaining connections to the bootnodes could be problematic for the bootnodes. Defaulting the behaviour to off avoids the need to specifically disable the behaviour on all of the nodes, but allows a smaller chain to be configured to still treat bootnodes like static nodes.
Locally, you can run these tests to catch failures early:

[ ] unit tests: ./gradlew build
[ ] acceptance tests: ./gradlew acceptanceTest
[ ] integration tests: ./gradlew integrationTest
[ ] reference tests: ./gradlew ethereum:referenceTests:referenceTests

After discussion with @pinges we've decided to close this and revert https://github.com/hyperledger/besu/pull/7257 (the latter has gone into 24.7.0 so will need a breaking change entry). https://github.com/hyperledger/besu/pull/7314 provides the behaviour change that is most important - namely that bootnodes can be retried during peer table refresh - so that PR will merge pending approval.


text:
fix(connector-fabric): chain code deployment fails >1 scp concurrency

Describe the bug
The original report and a suggested fix is here in the chat:
https://chat.hyperledger.org/channel/cactus?msg=ezAMbp6vphCtGzkc6
deepakwipro
2:50 AM
Failed to deploy contract to fabric network: Error: Received exit code 127 while establishing SFTP session

peter_somogyvari
peter_somogyvari
8:00 AM
deepakwipro Could you please post the code that you've written to assemble the deploy contract request and the logs of the API server when the 127 exit code is returned?

deepakwipro
8:15 PM
deploy.js

deepakwipro - Tue Nov 23 2021 09:45:35 GMT+0530 (India Standard Time).txt

deepakwipro
12:45 AM
I found some solution regarding this issue:-
I made change at line 207 in node_modules/@hyperledger/cactus-plugin-ledger-connector-fabric/dist/lib/main/typescript/plugin-ledger-connector-fabric.js.
I replaced await ssh.putDirectory(tmpDirPath, remoteDirPath); with await ssh.putDirectory(tmpDirPath, remoteDirPath,{concurrency: 1});

peter_somogyvari
peter_somogyvari
3:40 PM
deepakwipro You are the best, thank you so much for coming up with the fix at the same time. 🙂
I'll commit the fix ASAP and we'll have a release with it hopefully next week in the form of 1.0.0-rc.3
Please keep an eye out for the release and the release notes to know when the fix is published onto npm.

https://app.zenhub.com/files/216610150/d33b46c9-ad0c-47d7-88ca-a6c545aa6543/download

Reopening because: https://chat.hyperledger.org/channel/cactus?msg=fRsY5rytH5grnZbzv
(the fix wasn't a real fix after all)

deetho
4:03 AM
I am Deepakwipro. I tried on remoteVM then it again throws same error. Last time, i tried to test it on localhost only so may be for that it started working after adding concurrency:1. Pls look into this issue for remoteVM,
peter_somogyvari
dheerajbudhiraja
4:04 AM
Getting same error:
Failed to deploy contract to fabric network: Error: Received exit code 127 while establishing SFTP session
at SFTP.onExit (/home/ubuntu/NodePro/node_modules/ssh2/lib/client.js:1500:23)

Could no longer re-produce this for a long time. Closing until we can reproduce it again. Please feel free to reopen but make sure to provide detailed reproduction steps.

repo: hyperledger/cactus


text:
Cannot read property 'url' of undefined

Context
Env:
2 orgs, each org has 2 peers
Steps:
Execute command "node benchmark/simple/main.js -n /home/yzapps/hyperledger/yingzi/caliper/network/fabric-v1.4-yingzi/2org2peercouchdb/fabric-node.json"
note:1.omit "-c" parameter, which means using the default "config-linear-rate.yaml" as the benchmark config file
2.The content of used fabric-node.json is as following:
fabric-node.zip
Expected Behavior
The benchmark test(running "marbles" chaincode) ran successfully and report was generated normally.
Actual Behavior
Three errors happened:
1.error: [monitor-docker.js]: monitor-docker: could not find active local container
2.Cannot read property 'url' of undefined
3.Cannot read property 'unshift' of undefined
The entire detailed log is below:

Could you please help check this issue? Thanks in advance. @houqinghui

It seemed that the chaincode was successfully installed and instantiated, but in later test, it failed...

@CoreyLin  Because the client and the fabric network is delopyed in different machine, so in the client machine, there is no local docker. Please refer to the below:
Q: How do I run caliper to test fabric which is deployed in another machine?
A:  Caliper is indepentent of the backend blockchain network. You can follow the below steps.

Deploy the backend network. First you should choose the fabric version in the directory /network, and then choose the network topoloy you want to test, last you can deploy the network by the docker-compose.
In the machine of caliper, you should modify the localhost to the ip of the host of fabric in the network configuration.
Run the caliper.
Some tips is that you should modify tht property deployed of the channel from false to true in the network config file. You had better use the go version’s network configuration file.

@CoreyLin  How can i monitor the remote docker?
A : If you need to access the Docker daemon remotely, you need to enable the tcp Socket. Beware that the default setup provides un-encrypted and un-anthenticated direct access to the Docker daemon.You can listen on port 2375 on all network interfaces with -H tcp://0.0.0.0:2375, or on a particular networ interface using its IP address: -H tcp://192.169.59.103:2375. The belows are what you would concern about.
a. You can add -H tcp://0.0.0.0:2375 to the ExecStart in the /lib/systemd/systemd/docker.service file, for example ExecStart=/usr/bin/dockerd -H tcp：//0.0.0.0:2357 -H unix:///var/run/docker.sock.
b. Restart the daemon with systemctl daemon-reload.
c. Restart the service sudo service docker restart.
d. Check if the port is open. You can run netstat -nptl, if not, you can run sudo ufw allow port to open it.

Thanks, qinghui. So is there a Q&A link?

Thanks qinghui, your instruction is very helpful. I did the following two things:
1.Enable docker remote port 2375 on fabric network servers. Instead of changing /lib/systemd/system/docker.service directly, I think the better way is: https://success.docker.com/article/how-do-i-enable-the-remote-api-for-dockerd
I tried it successfully.
2.In the benchmark config file, specify "monitor" like this:

After that, I execute "node benchmark/simple/main.js -c /home/yzapps/hyperledger/yingzi/caliper/network/fabric-v1.4-yingzi/2org2peercouchdb/config-linear-rate.yaml -n /home/yzapps/hyperledger/yingzi/caliper/network/fabric-v1.4-yingzi/2org2peercouchdb/fabric-node.json" to run the test again.
This time, "error: [monitor-docker.js]: monitor-docker: could not find active local container" disappeared. It is fixed.
However, the other two "Cannot read property" errors still exist. The detailed log is below:

Could you please check this? Thank you!

@CoreyLin You didn't specify CAs for the organizations. Guess this answers your question in #305

@aklenik Thanks very much for your so quick reply. :blush: But in #305 , you mentioned that I can omit CA configuration. I didn't configure CA in my configuration file.
So how can this issue be solved?

In current situation, is there any configuration which can solve this issue? I didn't setup CA. Instead, I used cryptogen. @aklenik

@CoreyLin Well, it's a bug, that needs to be fixed in the adapter.
In the meantime, you could comment out these lines of the adapter since it's causing the problem.

@aklenik OK, thanks! :thumbsup: I will comment out the lines mentioned by you, and run the test again.

@aklenik After commenting out the lines mentioned by you, the "Cannot read property" issue is fixed. I will close this issue. Thanks for your helpful instruction.

authors: CoreyLin aklenik houqinghui

repo: hyperledger/caliper


text:
[FAB-17906] Implement snapshotRequestBookKeeper

Signed-off-by: Wenjian Qiao wenjianq@gmail.com
Type of change

New feature

Description
Add a bookkeeper db to store snapshot requests and add/delete/list
snapshot requests. It also maintains smallest height for all the
pending snapshot requests.
Additional details
This is part of FAB-17906. In a separate PR, the snapshot mgmt APIs will be implemented and call the snapshot request bookkeeper to submit/cancel/list snapshot requests.
Related issues
https://jira.hyperledger.org/browse/FAB-17906

@manish-sethi Thank you. I have addressed your comments and also simplified unit tests by directly creating a snapshotRequestBookkeeper. The unit test to kvledger change will be covered when snapshot mgmt APIs are implemented.

repo: hyperledger/fabric


text:
Update write_first_app.rst

should run  npm run build  to build the dist/app.js, then run npm start
Signed-off-by: Tekin Tian tekintian@gmail.com
missing the npm run build

No response from contributor, closing.

authors: denyeart tekintian


text:
Review EPCIS concepts for Location

Review EPCIS concepts relating to BusinessLocation and ReadPoint to inform thinking on the Location RFC. Intent is to make sure we're well positioned for EPCIS support if that is the path we're going down.

Below findings are excerpts from the GS1 EPCIS Guidelines.
General Summary
The Where dimension of an EPCIS event captures where the event physically took place and/or where things are following the event. EPCIS events allow for two location types, readPoint and businessLocation. The readPoint is the location where the event took place. The businessLocation is the location where the object(s) is now considered to reside until a subsequent event takes place. Locations may be identified using a:

[x] GS1 Global Location Number (GLN)
[ ] GLN plus an extension
[x] industry identifier other than GLN
[x] geo-coordinates

URI syntax is used in EPCIS for the identifiers in the Where dimension. For example, suppose a location is identified by GLN 0614141111114 and extension 987. In EPCIS, the GLN+extension is represented as a Uniform Resource Identifier (URI) according to the EPC Tag Data Standard. The specific type of URI is called an SGLN, which is capable of representing either a
GLN+extension or a GLN without extension. The first part of this identifier (urn:epc:id:) indicates that this identifier follows the EPC Tag Data Standard. The next part (sgln:) says that it is either a GLN or GLN+extension (depending on whether the extension part is 0 or not).

[ ] The SGLN for GLN 0614141111114 and extension 987 looks like this: urn:epc:id:sgln:0614141.11111.978.
[x]  To represent a GLN without an extension, a single 0 digit is used in place of the extension, like this: urn:epc:id:sgln:0614141.11111.0.

Notes for our Futures Selves

The Grid Location RFC and implementation does not name the GLN extension component as in scope. At this time, GS1 recommends the use of GLN, not GLN + extension, for business transactions due to common limitations in transactional systems. Our current Grid design is not able to support the scenario where a businessLocation is defined at a fine level of granularity (i.e. a specific bin in a specific spot within a warehouse) via a GLN + extension. See Transactional use of GLN extension component.

repo: hyperledger/grid


text:
Remove genesis signing from Iroha

Genesis should be signed offline and given to Iroha through config. This way no peer needs to know about genesis private key. The functionality to sign genesis (or any) transaction could be placed into kagami. Also this would remove the --submit-genesis from the start args because genesis could just be picked up through config

This would also mean that genesis should be serialized exactly like a SignedTransaction. Which also means that executor field should be moved to config

after this is implemented @AlexStroke should test that we can bootstrap the network where multiple nodes submit genesis

Currently we store genesis as JSON without any signature attached to it.
So i have few questions/concerns:
1. How we are going to store signed genesis? JSON, Scale, ...
   Because atm peer is converting json to scale and only then sign it and send to other peers.

2. Editing genesis might become more involved: we need to edit possibly scale and then resign it

I think we should store genesis as json, have kagami sign it and then place the signed one it somewhere where iroha will pick it up. The signed genesis can be encoded as SCALE

Correct me if I am wrong. From the point of view of configuration, the change will be:

remove genesis.private_key parameter, leave only genesis.public_key and genesis.file
remove --submit-genesis CLI argument
no need to validate whether the peer is alone or not - it will submit the genesis anyways

Yes. Also multiple peers will be able to submit genesis

also make sure to update commit_hook like in  #4313

Corrections:

Currently we store genesis as JSON without any signature attached to it.

this has to remain like this. kagami should sign genesis transaction[s] and produce genesis file where every transaction is signed by the genesis account

Yes. Also multiple peers will be able to submit genesis

I think this can be true, but it should best be explored in a separate issue

what if peers have different genesis files but correctly signed with the expected private key? what if genesis.public_key is different, i.e. the same genesis file but signed with different key? what if both violations are present? that's obvious nothing is going to become committed in such a network but how this can be highlighted? or just as a point in FAQ/troubleshooting section of the docs section?

what if peers have different genesis files but correctly signed with the expected private key?

we can't prevent that. We can pursue some resolution tactic but I don't think we should

what if genesis.public_key is different, i.e. the same genesis file but signed with different key?

every peer knows genesis public key so once they receive the genesis they will verify if it was indeed signed by the correct key. In other words, this cannot happen

every peer knows genesis public key

I mean from their perspective it would be valid, imagine isolated sets of peers with distinct public key configured and corresponding genesis file attached
But generally the answer is clear, thanks

I was scratching my head on this topic and also on the topic of chain-wide configuration (#4028). I have came to the following vision, and you are welcome to find flaws in it.
First of all, I incline towards having the genesis block provided to each peer before it even starts gossiping with other peers. Therefore, I am so far against the idea of starting a network with no blocks at all and then awaiting for it from a client. It has many complications:

Iroha Core needs to be written in a way than can handle both states - with the genesis block, and without it yet
Chain-wide config should be known before gossiping and validation of any transactions, since consensus is regulated by this config
Having an "initial" default executor which allows everything has no use case apart from handling this genesis-less situation, right?
If it is submitted as a first transaction, should it be submitted to all peers, or should a receiving peer broadcast it further?

Instead, I think it is simpler to continue with supplying the genesis block on Iroha startup.
So, here is my vision on how to solve multiple problems (remove genesis signing and make chain-wide config purely on-chain).

Term: "Genesis Transaction" is just a SignedTransaction. However, it has the following properties:

It's first instruction is Upgrade
It's second instruction is Configure. While in all other cases Configure might contain only a subset of parameters, here it must have all parameters specified.
It is submitted by all peers
Implications:

Iroha Core doesn't need to assume any default values for config parameters
Iroha Core doesn't need Executor::Initial and other extra invariants only to handle the initial state of the network of not having the genesis yet.
If all peers have the same genesis, they can safely participate in consensus

Configuration: make genesis section consist of public_key and signed_file parameters. The latter one points to a binary file containing SCALE-encoded SignedTransaction.
iroha_genesis is not needed anymore. However, Kagami will still work with genesis.json format...
Kagami: kagami genesis sign genesis.json --key-pair ... --out-file signed-genesis.scale command will help to transform a conveniently written genesis.json into a binary SignedTransaction. genesis.json should consist of these fields:

chain_id
configuration: fields to put into Configure ISI. Does not need to contain all instructions: although Genesis Transaction must contain a Configure ISI with all parameters, Kagami can put some default here.
executor_file: a file with a blob to put into Upgrade ISI
instructions: array of instructions

Swarm:

It's philosophy is that it doesn't accept any key pairs from a user, but generates everything inside (can get an optional --seed for reproducibility). Therefore, it cannot accept an already signed genesis, since it will also need to accept a public key of it. But that's not an issue!
Another aspect of Swarm philosophy: it relies on our specific Docker images. Their property is that they have not only iroha binary compiled inside, but also iroha_client_cli and kagami.
Therefore, Swarm can accept a convenient genesis.json, generate some key for it, and sign it within the Docker container via kagami.
As one of the ways to do so, it can have an additional "genesis signing" service, which will sign the genesis.json and other peers can access it via volumes.
Implication: We don't need to store the binary artifact of signed genesis in the repo. We still only store genesis.json and executor.wasm in the /configs/swarm. Clean work!

Verified that Iroha starts up as expected using scripts/test_env and through Docker files on this specific commit.

authors: 0x009922 AlexStroke Mingela mversic

repo: hyperledger/iroha


text:
Fix build of stateful_validator target

Signed-off-by: Igor Egorov igor@soramitsu.co.jp

Description of the Change
Build was broken on systems without protobuf headers installed.

Benefits
Build is possible again.

Possible Drawbacks
None

Usage Examples or Tests
git clean -ffdx
cmake -H. -Bbuild
cmake --build build

What about tests? What is the way to prevent those type of issues in the future?

The only way to detect such issues on CI is to remove google.protobuf headers from system paths.

@muratovv If libraries are not installed in system path, then they will not be included by default, and it will be possible to track down such issues.

authors: igor-egorov lebdron muratovv


text:
[refactor]: change parameters to more optimal values

Description
more optimal values were found by @timofeevmd during perf testing
Linked issue

Closes #{issue_number}

Benefits

Checklist

[ ] I've read CONTRIBUTING.md
[ ] I've used the standard signed-off commit format (or will squash just before merging)
[ ] All applicable CI checks pass (or I promised to make them pass later)
[ ] (optional) I've written unit tests for the code changes
[ ] I replied to all comments after code review, marking all implemented changes with thumbs up

Pull Request Test Coverage Report for Build 6767339755

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
6915 unchanged lines in 128 files lost coverage.
Overall coverage decreased (-3.4%) to 55.997%

Files with Coverage Reduction
New Missed Lines
%

config/base/derive/src/view.rs
1
99.37%

config/src/block_sync.rs
1
95.0%

config/src/network.rs
1
93.75%

config/src/torii.rs
1
96.0%

config/src/wasm.rs
1
87.5%

core/src/smartcontracts/isi/block.rs
1
87.5%

config/src/kura.rs
2
79.41%

config/src/lib.rs
2
0.0%

ffi/src/option.rs
2
71.43%

config/src/genesis.rs
3
72.92%

Totals

Change from base Build 5423219773:
-3.4%

Covered Lines:
22157

Relevant Lines:
39568

💛  - Coveralls

Let's rebase it

authors: coveralls mversic pesterev


text:
[refactor] #4315: split pipeline events

Description

introduced WithEvents which makes sure that events are consumed upon block state transition
refactored PipelineEvent to a more sane representation

Linked issue

Closes #4315

Benefits

Checklist

[ ] I've read CONTRIBUTING.md
[ ] I've used the standard signed-off commit format (or will squash just before merging)
[ ] All applicable CI checks pass (or I promised to make them pass later)
[ ] (optional) I've written unit tests for the code changes
[ ] I replied to all comments after code review, marking all implemented changes with thumbs up

Can merging this please be postponed to after #4240 lands? I don't want to rebase it again..

Pull Request Test Coverage Report for Build 8448892902
Details

505 of 845 (59.76%)  changed or added relevant lines in 30 files are covered.
4940 unchanged lines in 93 files lost coverage.
Overall coverage increased (+1.0%) to 57.759%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

client/src/http.rs
2
3
66.67%

core/src/smartcontracts/wasm.rs
0
1
0.0%

data_model/src/block.rs
6
7
85.71%

data_model/src/transaction.rs
7
8
87.5%

telemetry/src/dev.rs
0
1
0.0%

core/src/kura.rs
1
3
33.33%

core/src/queue.rs
86
88
97.73%

core/src/smartcontracts/isi/triggers/set.rs
4
6
66.67%

core/src/state.rs
29
31
93.55%

smart_contract/src/lib.rs
0
2
0.0%

Files with Coverage Reduction
New Missed Lines
%

primitives/src/conststr.rs
1
91.14%

crypto/src/hash.rs
1
73.78%

ffi/derive/src/convert.rs
1
84.45%

primitives/src/lib.rs
1
0.0%

core/src/sumeragi/network_topology.rs
1
98.78%

crypto/src/signature/bls/mod.rs
2
0.0%

config/src/snapshot.rs
3
78.57%

data_model/derive/src/has_origin.rs
3
95.16%

config/src/kura.rs
3
80.0%

primitives/src/addr.rs
3
64.04%

Totals

Change from base Build 7884695009:
1.0%

Covered Lines:
23348

Relevant Lines:
40423

💛  - Coveralls

authors: DCNick3 coveralls mversic


text:
Popups in IntelliJ Idea break input

Hyprland Version
88b63a00b68350d6d001445357a2582ab5975f9c
Bug or Regression?
Regression
Description
Something has been broken recently with IntelliJ intellisense popups. They start stealing focus from the main window thus breaking keyboard input.
How to reproduce

Install IntelliJ Idea
Create a project in any language
Start typing and make the intellisense popup appear
The main intellij window will lose the focus regardless of input:follow_mouse and mouse position. So it won't be possible to continue typing or to select anything in the popup using the keyboard
You would have to manually refocus main window

Crash reports, logs, images, videos
No response

This looks like https://github.com/hyprwm/Hyprland/issues/3012 but it worked for me before

Suggested fix (windowrulev2 = noborder, class:^(jetbrains-idea)(.*)$) does not help.

It seems like this helps:
input {
  follow_mouse = 2
  float_switch_override_focus = 0
}

Currently I'm using the following rules which make the editor barely usable:
input {
  float_switch_override_focus=0
  follow_mouse=2
  mouse_refocus=1
}

xwayland {
  force_zero_scaling=true
}
windowrulev2 = noinitialfocus,class:^(jetbrains-.*),title:^(win.*)
windowrulev2 = noborder, class:^(jetbrains-idea)(.*)$

Unfortunately the "noinitialfocus" rule completely breaks the menus:
idea-menus.webm
Moreover, noinitialfocus is not a reliable fix, it's just makes things better. The editor still loses focus from time to time.

@pshirshov These are my window rules which fix a bunch of issues I've come across. These focus issues are related to xwayland applications running under wl-roots as the same problems happen in Sway as well.
# -- Fix odd behaviors in IntelliJ IDEs --
#! Fix focus issues when dialogs are opened or closed
windowrulev2 = windowdance,class:^(jetbrains-.*)$,floating:1
#! Fix splash screen showing in weird places and prevent annoying focus takeovers
windowrulev2 = center,class:^(jetbrains-.*)$,title:^(splash)$,floating:1
windowrulev2 = nofocus,class:^(jetbrains-.*)$,title:^(splash)$,floating:1
windowrulev2 = noborder,class:^(jetbrains-.*)$,title:^(splash)$,floating:1

#! Center popups/find windows
windowrulev2 = center,class:^(jetbrains-.*)$,title:^( )$,floating:1
windowrulev2 = stayfocused,class:^(jetbrains-.*)$,title:^( )$,floating:1
windowrulev2 = noborder,class:^(jetbrains-.*)$,title:^( )$,floating:1
#! Disable window flicker when autocomplete or tooltips appear
windowrulev2 = nofocus,class:^(jetbrains-.*)$,title:^(win.*)$,floating:1

Also add suppress.focus.stealing=false to your IDE properties.
I should mention that these do not "fix" everything. In my case, using a multi monitor setup will cause popups to open where ever they want sometimes. But at least the editor focus issues are fixed

Menus rendering remains broken with these properties.

The biggest issue I have now is that the autocomplete popup rendering has been broken since 0.30 in hyprland. The key to the focus issues with the editor is the windowdance rule though

The biggest issue I have now is that the autocomplete popup rendering has been broken since 0.30 in hyprland.

Same here, do you have any recommended fixes for now? It seems that the window size is fine, it's the inner rendering of it?

@Blackburn29's fixes seems to fix an issue with IntelliJ's New UI that causes unusable flickering when hovering over the left sidebar buttons.
See here for a demo of someone else having a similar problem in action
https://youtrack.jetbrains.com/issue/RIDER-103759
@vaxerski is there any way we can make these settings default, in the Hyprland sample config, or at the very least, document this in the wiki?

Currently I'm using the following rules which make the editor barely usable:
input {
  float_switch_override_focus=0
  follow_mouse=2
  mouse_refocus=1
}

xwayland {
  force_zero_scaling=true
}
windowrulev2 = noinitialfocus,class:^(jetbrains-.*),title:^(win.*)
windowrulev2 = noborder, class:^(jetbrains-idea)(.*)$

Unfortunately the "noinitialfocus" rule completely breaks the menus:
idea-menus.webm
Moreover, noinitialfocus is not a reliable fix, it's just makes things better. The editor still loses focus from time to time.

noinitialfocus doesnt break the menu with the new jetbrains UI. nofocus meanwhile breaks things like the search popup, or the new file popup. At least in the new UI.

Also add suppress.focus.stealing=false to your IDE properties.

Can someone please tell how/where to add this ?
I went through these but it's still confusing ->
https://intellij-support.jetbrains.com/hc/en-us/community/posts/206874755-Don-t-steal-focus?page=3#community_comment_115000586044
https://intellij-support.jetbrains.com/hc/en-us/articles/206544869-Configuring-JVM-options-and-platform-properties
https://developer.android.com/studio/intro/studio-config.html#customize_ide
I am using android-studio

@pshirshov These are my window rules which fix a bunch of issues I've come across. These focus issues are related to xwayland applications running under wl-roots as the same problems happen in Sway as well.
# -- Fix odd behaviors in IntelliJ IDEs --
#! Fix focus issues when dialogs are opened or closed
windowrulev2 = windowdance,class:^(jetbrains-.*)$,floating:1
#! Fix splash screen showing in weird places and prevent annoying focus takeovers
windowrulev2 = center,class:^(jetbrains-.*)$,title:^(splash)$,floating:1
windowrulev2 = nofocus,class:^(jetbrains-.*)$,title:^(splash)$,floating:1
windowrulev2 = noborder,class:^(jetbrains-.*)$,title:^(splash)$,floating:1

#! Center popups/find windows
windowrulev2 = center,class:^(jetbrains-.*)$,title:^( )$,floating:1
windowrulev2 = stayfocused,class:^(jetbrains-.*)$,title:^( )$,floating:1
windowrulev2 = noborder,class:^(jetbrains-.*)$,title:^( )$,floating:1
#! Disable window flicker when autocomplete or tooltips appear
windowrulev2 = nofocus,class:^(jetbrains-.*)$,title:^(win.*)$,floating:1

Also add suppress.focus.stealing=false to your IDE properties.
I should mention that these do not "fix" everything. In my case, using a multi monitor setup will cause popups to open where ever they want sometimes. But at least the editor focus issues are fixed

How to fix, popup in android studio not clickable after unfocused from input
https://github.com/hyprwm/Hyprland/assets/40895148/800dcaad-e3c5-4d4d-9645-c35011c3e0fe

I've tried a lot of similar things, in the end I've given up on Hyprland for now.

switching to experimental native wayland with jbr pre-release solves many of those issues

For the people using Android Studio, I think the Canary channel has fixes. Will report back, but the popups and autocomplete seem to work fine without any tweaks for now.

switching to experimental native wayland with jbr pre-release solves many of those issues

Could you please instruct me on how to do it?

With the beta runtime and the Hyprland config changes, for me, it's gone from crashing outright to just hanging for 10+ seconds half the time when I try to rename an identifier and working fine the other half.

JetBrains IDE's now have experimental Wayland support
Please try the versions in their Early Acess Program and see if they fix this issue.
Relevant Download links:
https://www.jetbrains.com/idea/nextversion/
https://www.jetbrains.com/pycharm/nextversion/
https://www.jetbrains.com/go/nextversion/

OP doesn't seem to still use hyprland, has this been fixed?

OP doesn't seem to still use hyprland, has this been fixed?

Use the latest jbr21 with the WLToolkit flag enabled in the IDE.

OP doesn't seem to still use hyprland, has this been fixed?

I use latest hyprland and intellij version and everything seems to work perfectly. Even coursor being "stuck" is fixed for me now

alr thx
@vaxerski

authors: Blackburn29 KAGEYAM4 MightyPlaza kamssiopeia liperium mindrunner nizarfadlan onyasumi pshirshov reinux

repo: hyprwm/Hyprland


text:
Touchscreen gestures

Description
I don't know enough about libinput/touchscreens to know if this is in the scope of the compositor, but is it possible to add touchscreen gestures (ie three finger desktop swipe to switch workspaces)?

#4489 answers your inquiry

I apparently didn't search :(

authors: ronasimi vaxerski


text:
Hyprland crashes when all monitors disconnected using hardware KVM

Hyprland Version
 System/Version info
Hyprland, built from branch HEAD at commit c5e28ebcfe00a510922779b2c568cfa52a317445  (props: bump ver 0.37.1).
Date: Sat Mar 16 14:51:49 2024
Tag: v0.37.1

flags: (if any)

System Information:
System name: Linux
Node name: office-desktop
Release: 6.7.9-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Fri, 08 Mar 2024 01:59:01 +0000

GPU information:
0e:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:1b06] (rev a1) (prog-if 00 [VGA controller])

os-release: NAME="EndeavourOS"
PRETTY_NAME="EndeavourOS"
ID="endeavouros"
ID_LIKE="arch"
BUILD_ID="2022.04.08"
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://endeavouros.com"
DOCUMENTATION_URL="https://discovery.endeavouros.com"
SUPPORT_URL="https://forum.endeavouros.com"
BUG_REPORT_URL="https://forum.endeavouros.com/c/arch-based-related-questions/bug-reports"
PRIVACY_POLICY_URL="https://endeavouros.com/privacy-policy-2"
LOGO="endeavouros"

plugins:

Bug or Regression?
Bug
Description
I have two 4K monitors connected via a hardware displayport KVM. If I switch to my other system using the KVM, then hyprland crashes so I am unable to switch back.
Journalctl log and hyprland crash report are attached
How to reproduce
I have found a workaround, which is to turn off one monitor before switching to my other system with the KVM. If I do this hyprland doesn't crash.
Therefore this bug only seems to happen if both monitors are disconnected at the same time. Perhaps it's a race condition?
Crash reports, logs, images, videos
crash.txt
log.txt

try on git

Thanks, can confirmed this is fixed on v0.37.1-78-g187caf41 :) Keep up the good work, loving hyprland!

authors: endeavour vaxerski


text:
Assertion fail after suspend-resume

Installed Hyprland on NixOS using the provided flake using revision 94ca386a8c298265fa5fb19ee2ec2be3db335502.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f05f12b2c33 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f05f1265b46 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007f05f12504b5 in __GI_abort () at abort.c:79
#4  0x00007f05f12503d9 in __assert_fail_base (fmt=0x7f05f13e5308 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7f05f1b50b34 "allocator != NULL", file=0x7f05f1b51420 "types/output/render.c", line=52, function=<optimized out>) at assert.c:92
#5  0x00007f05f125e7b6 in __GI___assert_fail (assertion=0x7f05f1b50b34 "allocator != NULL", file=0x7f05f1b51420 "types/output/render.c", line=52, function=0x7f05f1b51920 <__PRETTY_FUNCTION__.6> "output_create_swapchain") at assert.c:101
#6  0x00007f05f1b0860f in output_create_swapchain () from /nix/store/jc10mp7rk2w0vdypls8cc6s3cvlr5dqg-wlroots-hyprland-hidpi-2022-08-30_fd0b027/lib/libwlroots.so.11
#7  0x00007f05f1b08636 in output_attach_back_buffer () from /nix/store/jc10mp7rk2w0vdypls8cc6s3cvlr5dqg-wlroots-hyprland-hidpi-2022-08-30_fd0b027/lib/libwlroots.so.11
#8  0x00007f05f1b08709 in wlr_output_attach_render () from /nix/store/jc10mp7rk2w0vdypls8cc6s3cvlr5dqg-wlroots-hyprland-hidpi-2022-08-30_fd0b027/lib/libwlroots.so.11
#9  0x00000000004f5f13 in CHyprOpenGLImpl::makeLayerSnapshot(SLayerSurface*) ()
#10 0x00000000004eb48b in Events::listener_unmapLayerSurface(void*, void*) ()
#11 0x00000000004b2c5b in CHyprWLListener::emit(void*) ()
#12 0x00007f05f1b9490c in wl_signal_emit_mutable () from /nix/store/rq2d1gp2hhh4l584112vrkrbijpw7xhm-wayland-1.21.0/lib/libwayland-server.so.0
#13 0x00007f05f1b244c4 in layer_surface_unmap () from /nix/store/jc10mp7rk2w0vdypls8cc6s3cvlr5dqg-wlroots-hyprland-hidpi-2022-08-30_fd0b027/lib/libwlroots.so.11
#14 0x00007f05f1b245a5 in layer_surface_destroy () from /nix/store/jc10mp7rk2w0vdypls8cc6s3cvlr5dqg-wlroots-hyprland-hidpi-2022-08-30_fd0b027/lib/libwlroots.so.11
#15 0x00007f05f1b92ee7 in destroy_resource () from /nix/store/rq2d1gp2hhh4l584112vrkrbijpw7xhm-wayland-1.21.0/lib/libwayland-server.so.0
#16 0x00007f05f1b935f0 in wl_resource_destroy () from /nix/store/rq2d1gp2hhh4l584112vrkrbijpw7xhm-wayland-1.21.0/lib/libwayland-server.so.0
#17 0x00007f05f122280a in ffi_call_unix64 () from /nix/store/4d4zzb9a4fazq0qv7vvls561l9cxi0zc-libffi-3.4.2/lib/libffi.so.8
#18 0x00007f05f1221943 in ffi_call_int () from /nix/store/4d4zzb9a4fazq0qv7vvls561l9cxi0zc-libffi-3.4.2/lib/libffi.so.8
#19 0x00007f05f1b98961 in wl_closure_invoke () from /nix/store/rq2d1gp2hhh4l584112vrkrbijpw7xhm-wayland-1.21.0/lib/libwayland-server.so.0
#20 0x00007f05f1b93bda in wl_client_connection_data () from /nix/store/rq2d1gp2hhh4l584112vrkrbijpw7xhm-wayland-1.21.0/lib/libwayland-server.so.0
#21 0x00007f05f1b9688a in wl_event_loop_dispatch () from /nix/store/rq2d1gp2hhh4l584112vrkrbijpw7xhm-wayland-1.21.0/lib/libwayland-server.so.0
#22 0x00007f05f1b94365 in wl_display_run () from /nix/store/rq2d1gp2hhh4l584112vrkrbijpw7xhm-wayland-1.21.0/lib/libwayland-server.so.0
#23 0x0000000000439654 in main ()

core.Hyprland.1000.a48c473b58e9452d944d2c8d1b0c792e.72995.1662408963000000.zip
Looks like there was a symilar issue in wlroots concerning Wayfire: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3326

log please

log.zip

mashallah.
Well the logs warned you:
[WARN] Unplugged last monitor, entering an unsafe state. Good luck my friend.

You have yet another one of those shitty-ass laptops that physically disconnect the display on lid close. Cringe.
Check with 16f1d1b99b9ac4ae89fc04d00fcd16cd4e3cd302

This is a desktop machine, but your comment got me thinking: this is due to my KVM disconnecting. When monitor is plugged in directly, there is no issue.

I mean a KVM switch, more specifically this one.
But what is more important, that after the patch, resume works!
Thank you for the quick turnaround and this awesome window manager!

ok dunno what the hell happened but yeah sure you're welcome

authors: vaxerski vlaci


text:
Hyprland doesn't launch on workspace 1

Already reported ? *

[X] I have searched the existing open and closed issues.

Regression?
No
System Info and Version
 System/Version info
Hyprland, built from branch main at commit 0f594732b063a90d44df8c5d402d658f27471dfe  (props: bump version to 0.43.0).
Date: 2024-09-08
Tag: v0.43.0, commits: 0f594732b063a90d44df8c5d402d658f27471dfe

flags: (if any)

System Information:
System name: Linux
Node name: desktop
Release: 6.10.9
Version: #1-NixOS SMP PREEMPT_DYNAMIC Sun Sep  8 05:56:41 UTC 2024

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation RocketLake-S GT1 [UHD Graphics 750] [8086:4c8a] (rev 04) (prog-if 00 [VGA controller])

os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.11.20240910.1355a0c"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.11 (Vicuna)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.11 (Vicuna)"
VERSION_CODENAME=vicuna
VERSION_ID="24.11"

plugins:

======Config-Start======

Config File: /home/sperber/.config/hypr/hyprland.conf: Read Succeeded
exec-once = [workspace special:hdrop silent] librewolf
exec-once = [workspace special:hdrop silent] kitty --class kitty_hx hx
exec-once = kitty +kitten panel --edge=background btop

exec-once = systemctl start graphical-session-manual.target --user
exec-once = ssh-add -q ~/.ssh/id_ed25519
# exec-once = ironbar &

$mainMod = SUPER
# code:20=ß 34=ü 47=ö 48=ä

bind = $mainMod, e, exec, hdrop kitty --class kitty_1
bind = $mainMod ALT, e, exec, hdrop kitty --class kitty_2
bind = $mainMod, a, exec, hdrop kitty --class kitty_hx hx
bind = $mainMod ALT, a, exec, hdrop kitty --class kitty_code
bind = $mainMod, h, exec, hdrop godot4 --display-driver wayland
# bind = $mainMod, code:48, exec, hdrop foot -a foot_1 bash
# bind = $mainMod CTRL, code:48, exec, hdrop foot -a foot_2
# bind = $mainMod, code:47, exec, hdrop foot -a foot_hx hx
bind = $mainMod CTRL ALT, e, exec, foot bash
bind = $mainMod, y, exec, hdrop pcmanfm-qt
# bind = $mainMod, y, exec, hdrop pcmanfm
bind = $mainMod, i, exec, hdrop librewolf
# bind = $mainMod, h, exec, hdrop evolution
bind = $mainMod, code:20, exec, hdrop telegram-desktop
bind = $mainMod, code:34, exec, hdrop tor-browser
# bind = $mainMod, code:34, exec, hdrop gpick
bind = $mainMod, b, exec, hdrop -c libreoffice-writer libreoffice
bind = $mainMod, u, exec, keepassxc
bind = $mainMod, period, exec, fuzzel
bind = $mainMod, comma, exec, hdrop logseq
# bind = $mainMod, k, exec, grimblast copy area
bind = $mainMod, k, exec, grim -g "$(slurp)" - | wl-copy

bind = $mainMod, q, killactive
bind = , XF86Search, exec, reboot
# bind = , XF86Power, exec, shutdown now
bind = , XF86WakeUp, exec, hyprctl dispatch dpms off &&swaylock
# bind = , code:127, exec, kill -9 -1
bind = , Pause, exec, kill -9 -1

# Master Layout
bind = $mainMod, m, layoutmsg, swapwithmaster auto
# bind = $mainMod, C, fullscreen, 0 # Fullsreen
bind = $mainMod, l, fullscreen, 1 # Maximize

# Move focus
bind = $mainMod, t, movefocus, l
bind = $mainMod, r, movefocus, d
bind = $mainMod, n, movefocus, u
bind = $mainMod, s, movefocus, r

# bind = $mainMod SHIFT, N, focusmonitor, +1
# bind = $mainMod SHIFT, T, focusmonitor, -1

bind = $mainMod SHIFT, T, movewindow, l
bind = $mainMod SHIFT, S, movewindow, r
bind = $mainMod SHIFT, N, movewindow, u
bind = $mainMod SHIFT, R, movewindow, d

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod CTRL, 1, movetoworkspace, 1
bind = $mainMod CTRL, 2, movetoworkspace, 2
bind = $mainMod CTRL, 3, movetoworkspace, 3
bind = $mainMod CTRL, 4, movetoworkspace, 4
bind = $mainMod CTRL, 5, movetoworkspace, 5
bind = $mainMod CTRL, 6, movetoworkspace, 6
bind = $mainMod CTRL, 7, movetoworkspace, 7
bind = $mainMod CTRL, 8, movetoworkspace, 8
bind = $mainMod CTRL, 9, movetoworkspace, 9
bind = $mainMod CTRL, 0, movetoworkspace, 10

# next workspace on monitor
# bind = $mainMod, a, workspace, r+1
# bind = $mainMod, e, workspace, r-1
bind = $mainMod, p, exec, hyprnome --previous
bind = $mainMod, c, exec, hyprnome
# bind = SUPER_SHIFT, 1, exec, hyprnome --previous --move
# bind = SUPER_SHIFT, 2, exec, hyprnome --move

# Move/resize windows with mainMod + LMB/RMB and dragging
# bindm = $mainMod, mouse:272, movewindow
# bindm = $mainMod, mouse:273, resizewindow

# mouse side buttons
#bind=,mouse:275,exec,wl-copy $(wl-paste -p) # copy selected text
#bind=,mouse:276,exec,wtype -M ctrl -M shift v -m ctrl -m shift # paste by Ctrl+Shift+v

# fn buttons | "binde" allows press and hold
binde=,XF86AudioLowerVolume,  exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 3%-
binde=,XF86AudioRaiseVolume,  exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 3%+
# bind =,XF86AudioMute,         exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
# bind =,XF86AudioMicMute,      exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
binde =,XF86MonBrightnessUp,  exec, light -A 5
binde =,XF86MonBrightnessDown, exec, light -U 5
bind =,XF86AudioPlay,         exec, playerctl play-pause
bind =,XF86AudioPrev,         exec, playerctl previous
bind =,XF86AudioNext,         exec, playerctl next

# Window Rules
# windowrulev2 = float,class:^(pcmanfm-qt)$,title:^(.*)(file|File|Choose|Preferences)(.*)$
windowrulev2 = float,title:^(.*)(file|File|Choose|Preferences)(.*)$ # aktuell wird keine class mehr angezeigt

windowrulev2 = maxsize 1920 1080,floating:1
windowrulev2 = center,floating:1
windowrulev2 = tile,class:^(org.godotengine.)(.*)$
windowrulev2 = suppressevent maximize,class:^(libreoffice)(.*)$
windowrulev2 = fullscreen,class:^(mpv|endless-sky)$
windowrulev2 = idleinhibit fullscreen,class:^(mpv|librewolf|Tor Browser)$
windowrulev2 = bordercolor rgb(FF0000),xwayland:1

windowrulev2 = float,title:^(Open|Choose Files|Save As|Notifications|Confirm to replace files|File Operation Progress|File Properties|Search Files)(.*)$
# librewolf
# windowrulev2 = float,class:^(librewolf)$,title:^(Notification|Picture-in-Picture)$
# windowrulev2 = pin,class:^(librewolf)$,title:^(Picture-in-Picture)$
# windowrulev2 = nofullscreenrequest,class:^(librewolf)$,title:^(Picture-in-Picture)$
# Telegram media viewer
# windowrulev2 = float,class:^(org.telegram.desktop)$,title:^(Media viewer)$
# windowrulev2 = center,class:^(org.telegram.desktop)$,title:^(Media viewer)$
# windowrulev2 = monitor 1,class:^(org.telegram.desktop)$,title:^(Media viewer)$

general {
    gaps_in = 0
    gaps_out = 0
    border_size = 1
    no_focus_fallback = true
    layout = master
    # no_border_on_floating = true
    # resize_on_border = true
    extend_border_grab_area = 30
}

decoration {
drop_shadow = false
dim_around = 0
    blur {
        enabled = false
        }
}

animations {
    enabled = false
}

input {
    kb_layout = de
    kb_variant = nodeadkeys
    kb_options = caps:backspace
    # xkbOptions = "ctrl:nocaps,kpdl:dot";
    # xkbOptions = "caps:backspace,grp:ctrl_space_toggle";
    numlock_by_default = true
    sensitivity = 1 # dpi beginnt bei rot = 1600 dpi, grün = 1800 passt ganz gut
    accel_profile = adaptive
    scroll_method = on_button_down
    scroll_button = 273
    scroll_factor = 2
    follow_mouse = 2
    mouse_refocus = false
    float_switch_override_focus = 0

touchpad {
    disable_while_typing = true
    natural_scroll = true
    # scroll_factor = 1.0
    # tap_button_map = lmr
    }
}

gestures {
    workspace_swipe = yes
    workspace_swipe_use_r = true
}

misc {
# disable_hyprland_logo = true
disable_splash_rendering = true
force_default_wallpaper = 0
background_color = rgb(404040)
mouse_move_enables_dpms = true
key_press_enables_dpms = true
focus_on_activate = true
close_special_on_empty = true
new_window_takes_over_fullscreen = 2
# hide_cursor_on_key_press = true
# vrr = 1
}

binds {
    scroll_event_delay = 5
    workspace_back_and_forth = true
}

# unscale XWayland
xwayland {
  force_zero_scaling = true
}

cursor {
    inactive_timeout = 2
    hide_on_key_press = true
    no_warps = true
    # no_hardware_cursors = true # für Nvidia
}

master {
    new_status = master
    new_on_top = true
    mfact = 0.50
    no_gaps_when_only = 1
    # smart_resizing = false
}

debug:disable_logs = false

# System ###

# exec-once = easyeffects --gapplication-service &
# exec-once = wlsunset -t 3500 -T 6500 -l 50 -L 8.7 &
# exec-once = swayidle -w timeout 600 'hyprctl dispatch dpms off &&hyprctl dispatch dpms off' timeout 1200 'swaylock' timeout 18000 'systemctl suspend' resume'hyprctl dispatch dpms on' before-sleep 'swaylock' &

monitor=,preferred,auto,1.5
# monitor=DP-1,disable
# monitor=DP-2,disable
# monitor=DP-3,disable
monitor = HDMI-A-1, preferred, auto, 1.5
monitor = DP-1, preferred, auto-right, 1.5
monitor = eDP-1, preferred, auto-down, 1.33

env = BEMOJI_PICKER_CMD,fuzzel -d
env = BEMOJI_ECHO_NEWLINE,false

# env = XDG_CURRENT_DESKTOP,Hyprland
# env = XDG_SESSION_DESKTOP,Hyprland
# env = XDG_SESSION_TYPE,wayland

# env = CLUTTER_BACKEND,wayland
# env = GDK_BACKEND,wayland
env = SDL_VIDEODRIVER,wayland
env = MOZ_ENABLE_WAYLAND,1
env = NIXOS_OZONE_WL,1
env = _JAVA_AWT_WM_NONREPARENTING,1
# env = QT_QPA_PLATFORM,wayland
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1

### Nvidia
# env = LIBVA_DRIVER_NAME,nvidia
# env = XDG_SESSION_TYPE,wayland
# env = GBM_BACKEND,nvidia-drm
# env = __GLX_VENDOR_LIBRARY_NAME,nvidia

exec-once = hyprctl setcursor Bibata-Modern-Amber 28
env = XCURSOR_SIZE,28
env = GTK_THEME,Flat-Remix-GTK-Grey-Darkest
env = XCURSOR_THEME,Bibata-Modern-Amber

# falls Programme verzögert starten
# exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP

======Config-End========

Description
If i set
exec-once = [workspace special:hdrop silent] librewolf
exec-once = [workspace special:hdrop silent] kitty --class kitty_hx hx

then hyprland launches on workspace special:hdrop but i want it to launch on workspace 1.
How to reproduce
see above
Crash reports, logs, images, videos
No response

do you perhaps have focus on activate enabked

maybe these apps request urgent when they open. That's my guess.

authors: Schweber vaxerski


text:
Aquamarine stuff

ref https://github.com/hyprwm/Hyprland/pull/6608

looking at all remaining mentions of wlr:
pages/Plugins/Development/Advanced.md

For members, e.g. CCompositor::focusWindow(CWindow*, wlr_surface*) you will also need to add the thisptr argument to your hook:

pages/Getting Started/Installation.md

Lastly, copy hyprctl, hyprpm, and wlroots as mentioned
here

pages/FAQ/_index.md, (just use hyprctl monitors)

My monitor no worky
Try changing the mode in your config. If your preferred one doesn’t work, try a lower one. A good way to list all modes is to get wlr-randr and do a wlr-randr --dryrun

pages/FAQ/_index.md, (just use hyprctl monitors)

My monitor no worky
Try changing the mode in your config. If your preferred one doesn’t work, try a lower one. A good way to list all modes is to get wlr-randr and do a wlr-randr --dryrun

wlr-randr can be left there, as it's still supported through the output management protocol.

rest is ok

code example doesnt matter that much, its just an example

authors: fufexan ikalco vaxerski

repo: hyprwm/hyprland-wiki


text:
🛑 Invidious is down

In a0d091f, Invidious (https://yt.miruku.cafe/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Invidious is back up in d4b5c32 after 6 minutes.

repo: hytracer/status


text:
error: no instance of function template "c10::visit"

Hi,
when i run the setup.py in the ./extensions/chamfer_dist/, it errors as:
"/home/ynn/anaconda3/lib/python3.5/site-packages/torch/include/torch/csrc/api/include/torch/enum.h(164): error: no instance of function template "c10::visit" matches the argument list                   argument types are: (torch::enumtype::_compute_enum_name, torch::nn::KLDivLossOptions::reduction_t)                                                                                detected during:                                                                                instantiation of "std::string torch::enumtype::get_enum_name(V) [with V=torch::nn::KLDivLossOptions::reduction_t]"                                                               (176): here                                                                                instantiation of "at::Reduction::Reduction torch::enumtype::reduction_get_enum(V) [with V=torch::nn::KLDivLossOptions::reduction_t]"                                             /home/ynn/anaconda3/lib/python3.5/site-packages/torch/include/torch/csrc/api/include/torch/nn/functional/loss.h(49): here                                                                                /home/ynn/anaconda3/lib/python3.5/site-packages/torch/include/torch/csrc/api/include/torch/enum.h(164): error: no instance of function template "c10::visit" matches the argument list                   argument types are: (torch::enumtype::_compute_enum_name, torch::nn::MultiLabelSoftMarginLossOptions::reduction_t)                                                                         detected during instantiation of "std::string torch::enumtype::get_enum_name(V) [with V=torch::nn::MultiLabelSoftMarginLossOptions::reduction_t]"                                  /home/ynn/anaconda3/lib/python3.5/site-packages/torch/include/torch/csrc/api/include/torch/nn/functional/loss.h(336): here                                                                                /home/ynn/anaconda3/lib/python3.5/site-packages/torch/include/torch/csrc/api/include/torch/enum.h(164): error: no instance of function template "c10::visit" matches the argument list                   argument types are: (torch::enumtype::_compute_enum_name, torch::nn::functional::PadFuncOptions::mode_t)                                                                                detected during instantiation of "std::string torch::enumtype::get_enum_name(V) [with V=torch::nn::functional::PadFuncOptions::mode_t]"                                            /home/ynn/anaconda3/lib/python3.5/site-packages/torch/include/torch/csrc/api/include/torch/nn/functional/padding.h(40): here                                                                                /home/ynn/anaconda3/lib/python3.5/site-packages/torch/include/torch/csrc/api/include/torch/enum.h(164): error: no instance of function template "c10::visit" matches the argument list                   argument types are: (torch::enumtype::_compute_enum_name, torch::nn::functional::InterpolateFuncOptions::mode_t)                                                                           detected during instantiation of "std::string torch::enumtype::get_enum_name(V) [with V=torch::nn::functional::InterpolateFuncOptions::mode_t]"                                    /home/ynn/anaconda3/lib/python3.5/site-packages/torch/include/torch/csrc/api/include/torch/nn/functional/upsampling.h(103): here                                                                                /home/ynn/anaconda3/lib/python3.5/site-packages/torch/include/torch/csrc/api/include/torch/enum.h(164): error: no instance of function template "c10::visit" matches the argument list                   argument types are: (torch::enumtype::_compute_enum_name, torch::nn::detail::conv_padding_mode_t)                                                                                detected during:                                                                                instantiation of "std::string torch::enumtype::get_enum_name(V) [with V=torch::nn::detail::conv_padding_mode_t]"                                                                 /home/ynn/anaconda3/lib/python3.5/site-packages/torch/include/torch/csrc/api/include/torch/nn/modules/conv.h(95): here                                                                                instantiation of "void torch::nn::ConvNdImpl<D, Derived>::pretty_print(std::ostream &) const [with D=1UL, Derived=torch::nn::Conv1dImpl]"
6 errors detected in the compilation of "/tmp/tmpxft_00001b8a_00000000-6_chamfer.cpp1.ii".                                                                                error: command '/usr/local/cuda/bin/nvcc' failed with exit status 1 "
Did you meet the problem before? How to solve it? Thanks in advance.

What's your CUDA and PyTorch version?

cuda：9.0
pytorch：1.4.0

So, the PyTorch you used now is built from source code?

Luckily, I slove it by downloading a chamfer3D from https://github.com/Steve-Tod/ChamferDistancePytorch.
However, when I run the setup.py under the ./extension/gridding_loss/ ,the same error happens again.
Actually, I install the torch by "pip install --user torch==1.4", is there any problem? How do you install torch?
Thanks for your patience.

I suggest you upgrade CUDA >= 9.2 (requires NVIDIA driver >= 396) and then install PyTorch with the following command.
pip install --user torch==1.4

If you cannot upgrade CUDA, please consider building PyTorch from source.
For more information, please refer to the PyTorch Documentation. Remember to checkout to v1.4.0 after git clone.

I suggest you upgrade CUDA >= 9.2 (requires NVIDIA driver >= 396) and then install PyTorch with the following command.
pip install --user torch==1.4

If you cannot upgrade CUDA, please consider building PyTorch from source.
For more information, please refer to the PyTorch Documentation. Remember to checkout to v1.4.0 after git clone.

So, in order to run the project that need  CUDA9.2 and Pytorch 1.4.0 right ?
I have the same problem in CUDA9.0 and Pytorch 1.4.0

I tested it with CUDA 9.0 and PyTorch 1.4 (built from source).
If you install PyTorch from pip, it may cause this issue.

@adamrek
I tested it with CUDA 9.0 and PyTorch 1.4 (built from source).
If you install PyTorch from pip, it may cause this issue.

OK, I will try it  , thanks

Maybe it is related to https://github.com/pytorch/pytorch/issues/13541

Maybe it is related to https://github.com/pytorch/pytorch/issues/13541

authors: adamrek doublemanyu hzxie

repo: hzxie/GRNet


text:
The pretrain model has wrong state_dict keys

Hi, I get some issue about

I test the the script with pretrain model

python run.py --test --exp_name test_split --data_path path/to/processed_data

The output logs are:
use_cuda: True
exp_name: test_split
#parameters 17463870
Traceback (most recent call last):
  File "run.py", line 279, in <module>
    test(exp_name, test_files)
  File "run.py", line 139, in test
    model.load_state_dict(checkpoint['model_state_dict'])
  File "/home/keroro/Program_Files/miniconda3/envs/tt/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1052, in load_state_dict
    self.__class__.__name__, "\n\t".join(error_msgs)))
RuntimeError: Error(s) in loading state_dict for VMNet:
	Unexpected key(s) in state_dict: "Geo_branch.mid_geo.geo_0.lin_edge.weight", "Geo_branch.mid_geo.geo_0.lin_edge.bias", "Geo_branch.mid_geo.geo_1.lin_edge.weight", "Geo_branch.mid_geo.geo_1.lin_edge.bias", "Geo_branch.cd_5.geo_0.lin_edge.weight", "Geo_branch.cd_5.geo_0.lin_edge.bias", "Geo_branch.de5_geo.geo_0.lin_edge.weight", "Geo_branch.de5_geo.geo_0.lin_edge.bias", "Geo_branch.de5_geo.geo_1.lin_edge.weight", "Geo_branch.de5_geo.geo_1.lin_edge.bias", "Geo_branch.cd_4.geo_0.lin_edge.weight", "Geo_branch.cd_4.geo_0.lin_edge.bias", "Geo_branch.de4_geo.geo_0.lin_edge.weight", "Geo_branch.de4_geo.geo_0.lin_edge.bias", "Geo_branch.de4_geo.geo_1.lin_edge.weight", "Geo_branch.de4_geo.geo_1.lin_edge.bias", "Geo_branch.cd_3.geo_0.lin_edge.weight", "Geo_branch.cd_3.geo_0.lin_edge.bias", "Geo_branch.de3_geo.geo_0.lin_edge.weight", "Geo_branch.de3_geo.geo_0.lin_edge.bias", "Geo_branch.de3_geo.geo_1.lin_edge.weight", "Geo_branch.de3_geo.geo_1.lin_edge.bias", "Geo_branch.cd_2.geo_0.lin_edge.weight", "Geo_branch.cd_2.geo_0.lin_edge.bias", "Geo_branch.de2_geo.geo_0.lin_edge.weight", "Geo_branch.de2_geo.geo_0.lin_edge.bias", "Geo_branch.de2_geo.geo_1.lin_edge.weight", "Geo_branch.de2_geo.geo_1.lin_edge.bias", "Geo_branch.cd_1.geo_0.lin_edge.weight", "Geo_branch.cd_1.geo_0.lin_edge.bias", "Geo_branch.de1_geo.geo_0.lin_edge.weight", "Geo_branch.de1_geo.geo_0.lin_edge.bias", "Geo_branch.de1_geo.geo_1.lin_edge.weight", "Geo_branch.de1_geo.geo_1.lin_edge.bias", "Geo_branch.cd_0.geo_0.lin_edge.weight", "Geo_branch.cd_0.geo_0.lin_edge.bias", "Geo_branch.de0_geo.geo_0.lin_edge.weight", "Geo_branch.de0_geo.geo_0.lin_edge.bias", "Geo_branch.de0_geo.geo_1.lin_edge.weight", "Geo_branch.de0_geo.geo_1.lin_edge.bias".

What are the Unexpected key(s) in state_dict ? does the VMNet not defined?

When I preprocess the data, I had build VCGlib
vcglib/apps/tridecimator and  vcglib/apps/sample/trimesh_clustering , I add environment path by:

export PATH=$PATH:/path/to/vcglib/apps/tridecimator:/path/to/vcglib/apps/sample/trimesh_clustering
# create links
sudo ln -s /path/to/vcglib/apps/tridecimator/tridecimator /usr/local/bin
sudo ln -s /path/to/vcglib/apps/sample/trimesh_clustering/trimesh_clustering /usr/local/bin

But run the preprocess, there is core dumped:
in_path:../scannet/VMtest
out_path:../scannet/VMNet_data/train/
[0.02, 0.04, 30, 30, 30, 30, 30]
Processing ../scannet/VMtest/scene0000_00/scene0000_00_vh_clean_2.ply
curr_dir: ../scannet/VMNet_data/train/scene0000_00
trimesh_clustering: ../../../vcg/simplex/vertex/component.h:75: vcg::vertex::EmptyCore<TT>::ColorType& vcg::vertex::EmptyCore<TT>::C() [with TT = MyUsedTypes; vcg::vertex::EmptyCore<TT>::ColorType = vcg::Color4<unsigned char>]: Assertion `0' failed.
Aborted (core dumped)
trimesh_clustering: ../../../vcg/simplex/vertex/component.h:75: vcg::vertex::EmptyCore<TT>::ColorType& vcg::vertex::EmptyCore<TT>::C() [with TT = MyUsedTypes; vcg::vertex::EmptyCore<TT>::ColorType = vcg::Color4<unsigned char>]: Assertion `0' failed.
Aborted (core dumped)
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
  File "/home/keroro/Program_Files/miniconda3/envs/tt/lib/python3.7/multiprocessing/pool.py", line 121, in worker
    result = (True, func(*args, **kwds))
  File "/home/keroro/Program_Files/miniconda3/envs/tt/lib/python3.7/multiprocessing/pool.py", line 44, in mapstar
    return list(map(*args))
  File "prepare_data.py", line 226, in process_frame
    old_vertices=vertices[-1])
  File "prepare_data.py", line 173, in quadric_error_metric
    '.ply', '.csv'), old_vertices=old_vertices, new_vertices=vertices_l)
  File "prepare_data.py", line 78, in csv2npy
    with open(in_file_path, 'r') as csvfile:
FileNotFoundError: [Errno 2] No such file or directory: '../scannet/VMNet_data/train/scene0000_00/curr_mesh.csv'
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "prepare_data.py", line 295, in <module>
    pf_pool.map(process_frame_p, file_paths)
  File "/home/keroro/Program_Files/miniconda3/envs/tt/lib/python3.7/multiprocessing/pool.py", line 268, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "/home/keroro/Program_Files/miniconda3/envs/tt/lib/python3.7/multiprocessing/pool.py", line 657, in get
    raise self._value
FileNotFoundError: [Errno 2] No such file or directory: '../scannet/VMNet_data/train/scene0000_00/curr_mesh.csv'

Where should I set the correct environment path for vcglib/apps/tridecimator and  vcglib/apps/sample/trimesh_clustering?

Thank you for your comment.
I checked the code and find that the issue is related to the torch_geometric package.
It turns out that they changed some lines in the newest version. Specifically, from:

self.lin_edge = Linear(1, 1)

to:

self.lin_edge = self.register_parameter('lin_edge', None)

This should not have a large impact, but I'm afraid that you need to install torch_geometric 1.6.3 to load the pre-trained model correctly.

For environment path, I add these lines to the .bashrc file in my system:

export PATH=/path/to/tridecimator/:$PATH

export PATH=/path/to/trimesh_clustering/:$PATH

@hzykent Thamks for your patient and response to me
Yeah, I can read the keys correctly since I replace version of torch_geometry to 1.6.3 now
For trimesh_clustering error, I found the same issue in #36
There is the solution in trimesh_clustering.cpp for the vertex by replace

class MyVertex  : public vcg::Vertex< MyUsedTypes, vcg::vertex::Coord3f, vcg::vertex::Normal3f, vcg::vertex::BitFlags  >{};

with

class MyVertex  : public vcg::Vertex< MyUsedTypes, vcg::vertex::Coord3f, vcg::vertex::Normal3f, vcg::vertex::BitFlags, vcg::vertex::Color4b >{};

Every thing seems right, but the prepare_data.py still run error in the line 78:
with open(in_file_path, 'r') as csvfile:

I got

FileNotFoundError: [Errno 2] No such file or directory: '/home/keroro/project/scannet/VMNet_data/train/scene0000_00/curr_mesh.csv'

I don't understand where the .csv comes up? In the script there is not write any csv files, Why read the csv file? What csv2npy function do. The nested function is process_frame-->if level >=1 --> quadric_error_metric --> csv2npy, process doesn't write any csv file.

Hi,
The csv file is generated by tridecimator. After running line 155:

os.system(f"tridecimator " f"{curr_file_path} {curr_file_path} {ratio} -On -C > /dev/null")

There will be two files in the folder:

curr_mesh.csv  curr_mesh.ply

I guess the tridecimator in your system may not be compiled correctly.

Oops

os.system(f"tridecimator " f"{curr_file_path} {curr_file_path} {ratio} -On -C > /dev/null")

I think the second argument should be {curr_file_path[:-3]+'csv'} instead of {curr_file_path}, because it means output file
The modified line is

os.system(f"tridecimator " f"{curr_file_path} {curr_file_path[:-3]+'csv'} {ratio} -On -C > /dev/null")

Does it correct in originally logic for running tridecimator?

This line of code is adpoted from DCM-Net, and I think it is written in the correct way.
For example, in a directory with file current_mesh.ply, run ll, the output is:

-rw-r--r-- 1 root root 800772 Aug 11 16:06 curr_mesh.ply

If you run this line:

tridecimator curr_mesh.ply curr_mesh.ply 30 -On -C > /dev/null

The output would be:

-rw-r--r-- 1 root root 768671 Aug 11 17:01 curr_mesh.csv
-rw-r--r-- 1 root root 238990 Aug 11 17:01 curr_mesh.ply

The mesh is downsampled correctly and the other information is stored in csv file.
But if this line is run:

tridecimator curr_mesh.ply curr_mesh.csv 30 -On -C > /dev/null

The output would be:

-rw-r--r-- 1 root root 768671 Aug 11 17:00 curr_mesh.csv
-rw-r--r-- 1 root root 800772 Aug 11 16:06 curr_mesh.ply

The csv file is correctly stored but the downsampled mesh is not.

I think you are right, the output should be downsample mesh.
I checked in source code tridecimator.cpp and export_ply.h
There are not exporting any csv files, what source code of tridecimator you belong, does you rewrite some else?

I didn't rewrite any code regarding tridecimator. I just downloaded the code from vcglib github repository and basically followed the preprocessing steps of DCM-Net.

Hi,
Can you show me the message of after executing tridecimator curr_mesh.ply curr_mesh.ply 30 -On -C ? eliminated "> /dev/null"
I actually get the downsample mesh following the step:

$ll
total 2320
drwxrwxr-x  2 keroro keroro    4096  8  13 11:18 ./
drwxrwxr-x 45 keroro keroro    4096  8  11 11:12 ../
-rw-rw-r--  1 keroro keroro 2367239  8  13 11:18 curr_mesh.ply
$tridecimator curr_mesh.ply curr_mesh.ply 30 -On -C
mesh loaded 64445 122592
NOT Using OptimalPlacement
Cleaning mesh before simplification
Removed 0 duplicate and 50 unreferenced vertices from mesh
reducing it to 30
Initial Heap Size 735552
mesh  299 29 Error 1.46578 eap sz    348763 err 9.75846e-08

Completed in (0.202+0.981) sec
$ll
total 16
drwxrwxr-x  2 keroro keroro 4096  8  13 11:18 ./
drwxrwxr-x 45 keroro keroro 4096  8  11 11:12 ../
-rw-rw-r--  1 keroro keroro 4162  8  13 11:19 curr_mesh.ply

As you can see, the tridecimator executes as normal, the size of curr_mesh.ply down to 4162 from 2367239, but I still not create any csv file
Excuse, can you provide your executable tridecimator* for me? Let me run and check the binary file that not compiled incorrectly
I would appreciate very much

I have the same problem too

Hi, unfortunately, I did not get any messages when executing tridecimator.
The executable file of tridecimator could be downloaded through this link https://drive.google.com/file/d/16is5cUULPhdTgRyG1fNbFMxbvWUB_V2Y/view?usp=sharing. (not sure if it is runnable in your system).
P.S. Maybe you can ask the authors of DCM-Net for help since these preprocessing steps are adpoted from DCM-Net.

Oh, I noticed that I'm actually using the vcglib fork created by the author of DCM-Net instead of the official repository. I guess it may be the point causing all these problems.
I updated the link of vcglib. If it solved the problems, I'm sorry for the troublesome.

@hzykent, Thanks this can be work now

repo: hzykent/VMNet