Add LiveKit audio transport

This might not be perfect yet but I would love to get some initial feedback.
It looks like there are quite a few people interested #325

This looks really good! I'll take a final look later, thank you!!!

This looks amazing @joachimchauvet ! I'm particularly interested in this PR as I'm using LiveKit.
I will give it a try as soon as possible and provide feedback. Looking forward to testing it out!
Many thanks

@joachimchauvet I just tested and I can't play the audio when I join the room using the LK playground. I join the same room as my agent, I have both participants active in the room, the room events are consistent, but the 'Agent connected' status on the playground remains pending, as does the audio track.

It seems to work fine on my side.
However, I noticed that I forgot to adjust the sample rate in https://github.com/joachimchauvet/pipecat-livekit/blob/main/examples/foundational/01b-livekit-audio.py
Could it be that the voice was playing so fast that you did not really hear it if you were using that example?
Are you using a different token for the bot and the user?

@joachimchauvet i'm using a different token for the bot and the user yes

@joachimchauvet can you please check :
https://github.com/cyrilS-dev/pipecat/commit/0a64aba7addde9dd6f113eacd11e7fb83468d585
https://github.com/cyrilS-dev/pipecat/commit/89260736ae9e84e98f85f5abae56572bbd6dbb9c
This version uses LiveKit Agents worker and job logic.

This looks great! Please, rebase and make sure the pipeline is green. We are now using Ruff as our formatter. Make sure everything is green and I think we cna merge after that. Thank you! :pray:

@joachimchauvet I encountered an error while using the LiveKitInputTransport class in my application :
Error in audio input task: 'LiveKitInputTransport' object has no attribute '_internal_push_frame'
_internal_push_frame method is not defined in the LiveKitInputTransport class

@joachimchauvet I encountered an error while using the LiveKitInputTransport in my application :
Error in audio input task: 'LiveKitInputTransport' object has no attribute '_internal_push_frame'
_internal_push_frame method is not defined in the LiveKitInputTransport class

Were you doing something special or made changes to the LiveKitInputTransport? It inherits the BaseInputTransport so _internal_push_frame should be defined. The method works fine on my side 🤔

There is no _internal_push_frame method into BaseInputTransport since https://github.com/pipecat-ai/pipecat/commit/337f048864d154dc3a70e4ae38eb3fc54f69abbe#diff-75a719845c4cd87dda07b88df06ba32275ebc7be1fdcbbd21fa87554d3a800af

@joachimchauvet I encountered an error in the _audio_in_task_handler method of the LiveKitInputTransport class., using Deepgram as STT. :
AttributeError: 'AsyncListenWebSocketClient' object has no attribute '_socket'
2024-09-25 15:49:15.863 | ERROR    | pipecat.processors.frame_processor:push_frame:203 - Uncaught exception in LiveKitInputTransport#0: 'AsyncListenWebSocketClient' object has no attribute '_socket'

The issue arises when  await self.push_frame(pipecat_audio_frame) attempts to push frames before the Deepgram WebSocket connection is fully initialized.

@joachimchauvet I encountered an error in the _audio_in_task_handler method of the LiveKitInputTransport class., using Deepgram as STT. :
AttributeError: 'AsyncListenWebSocketClient' object has no attribute '_socket'
2024-09-25 15:49:15.863 | ERROR    | pipecat.processors.frame_processor:push_frame:203 - Uncaught exception in LiveKitInputTransport#0: 'AsyncListenWebSocketClient' object has no attribute '_socket'

The issue arises when await self.push_frame(pipecat_audio_frame) attempts to push frames before the Deepgram WebSocket connection is fully initialized.

In theory, all processors should receive the StartFrame first (this is guaranteed now in main) and they should make sure any connection or whatever is needed is established so it's safe to push frames after.
It's possible that this branch hasn't been rebased so it doesn't have that StartFrame guarantee. Would it be possible for you to rebase locally and try that? I could be wrong and maybe it's something else...

Everything is running perfectly; just one detail: LiveKitInputTransport stops when the room is disconnected, but LiveKitOutputTransport doesn't; this triggers an error after a while from the TTS service: no close frame received or sent.

Everything is running perfectly; just one detail: LiveKitInputTransport stops when the room is disconnected, but LiveKitOutputTransport doesn't; this triggers an error after a while from the TTS service: no close frame received or sent.

I'll wait on @joachimchauvet to answer this before merging.

I'll go ahead and merge this one. If there's any error you can provide a fix later. Thank you!!!

Everything is running perfectly; just one detail: LiveKitInputTransport stops when the room is disconnected, but LiveKitOutputTransport doesn't; this triggers an error after a while from the TTS service: no close frame received or sent.

I don't have this error with my agents. I have an idea where that might come from but I was not able to reproduce that no close frame received or sent directly. @cyrilS-dev could you share a pipeline that triggers this error?

@joachimchauvet The execution is blocked when calling await super().stop(frame) in the stop method of the BaseOutputTransport class.
The stop method in the BaseOutputTransport class is causing the execution to hang due to :
if self._sink_task:
     await self._sink_task
if self._sink_clock_task:
     await self._sink_clock_task

As a result, the await self._client.disconnect() call is never reached.
@aconchillo do you have any insights on this? Thanks


Retrieving Relationship Attributes Does Not Work

Imagine a domain where:
Person->[Works-With {active: true/false, capacity: contractor/employee}]->Business
Reasonably, a person will have multiple relationships each to a different business*.
I would like to query for a person and retrieve all of the relationships and the business name to show in a list so that they may be curated/edited. But I want the relationship attributes too in addition to either the PersonName or BusinessName.
Q: what's the pattern for retrieving the relationship 'record' with one end (business given person, or person given business)?
do you go and create a psudeo class and a query like this? if so, what's the C# call to get the data and cast it to the class?

class BusinessRelationship
    {
        [JsonProperty(PropertyName = "name")]
        public string BusinessName { get; set; }

        [JsonProperty(PropertyName = "active")]
        public bool Active { get; set; }
    }

Conversely, do you do a query like this? if so, how do you map into a class so that the business name and all the relationship attribute names are available?

*or a single person has multiple relationships to a single business when they're rehired but this is an extended case.

hmm, wondering this is the way to go.
Map the relationship attributes into the businesses returned. Will this work if the Person works multiple times in different roles? presumably.
https://github.com/Readify/Neo4jClient/wiki/cypher-examples#get-a-user-count-their-friends-then-add-this-number-to-the-user-and-return

tried using an apoc call to extend the business class with the status as per this  but its not working
Here's the cypher query along with the expected result

here's the C# code

Here's what the debugger watches shows coming back

Also tried this from here but get an exception stating it can't map properly (below).
If I try the code below but exclude the relationship, it maps properly. Adding the relationship it fails with the exception below.

Here's the data in a query

{"Neo4j returned a valid response, however Neo4jClient was unable to deserialize into the object structure you supplied.\r\n\r\nFirst, try and review the exception below to work out what broke.\r\n\r\nIf it's not obvious, you can ask for help at http://stackoverflow.com/questions/tagged/neo4jclient\r\n\r\nInclude the full text of this exception, including this message, the stack trace, and all of the inner exception details.\r\n\r\nInclude the full type definition of <>f__AnonymousType23[[GraphEntry.Domain.Person, WindowsFormsApp2, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null],[GraphEntry.Domain.Business, WindowsFormsApp2, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null],[System.Collections.Generic.IEnumerable1[[Neo4jClient.RelationshipInstance1[[GraphEntry.Domain.BusinessRelationship, WindowsFormsApp2, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]], Neo4jClient, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5 c561934e089]].\r\n\r\nInclude this raw JSON, with any sensitive values replaced with non-sensitive equivalents:\r\n\r\n{\"columns\":[\"P\",\"B\",\"R\"],\"data\":[[{\"extensions\":{},\"metadata\":{\"id\":21,\"labels\":[\"Person\"]},\"paged_traverse\":\"http://localhost:7474/db/data/node/21/paged/traverse/{returnType}{?pageSize,leaseTime}\",\"outgoing_relationships\":\"http://localhost:7474/db/data/node/21/relationships/out\",\"outgoing_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/out/{-list|&|types}\",\"labels\":\"http://localhost:7474/db/data/node/21/labels\",\"create_relationship\":\"http://localhost:7474/db/data/node/21/relationships\",\"traverse\":\"http://localhost:7474/db/data/node/21/traverse/{returnType}\",\"all_relationships\":\"http://localhost:7474/db/data/node/21/relationships/all\",\"all_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/all/{-list|&|types}\",\"property\":\"http://localhost:7474/db/data/node/21/properties/{key}\",\"self\":\"ht tp://localhost:7474/db/data/node/21\",\"incoming_relationships\":\"http://localhost:7474/db/data/node/21/relationships/in\",\"properties\":\"http://localhost:7474/db/data/node/21/properties\",\"incoming_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/in/{-list|&|types}\",\"data\":{\"LinkedIn\":\"\",\"name\":\"Fred James\",\"PriorWork\":\"\",\"Domain\":\"UX\"}},{\"extensions\":{},\"metadata\":{\"id\":0,\"labels\":[\"Business\"]},\"paged_traverse\":\"http://localhost:7474/db/data/node/0/paged/traverse/{returnType}{?pageSize,leaseTime}\",\"outgoing_relationships\":\"http://localhost:7474/db/data/node/0/relationships/out\",\"outgoing_typed_relationships\":\"http://localhost:7474/db/data/node/0/relationships/out/{-list|&|types}\",\"labels\":\"http://localhost:7474/db/data/node/0/labels\",\"create_relationship\":\"http://localhost:7474/db/data/node/0/relationships\",\"traverse\":\"http://localhost:7474/db/data/node/0/traverse/{returnType}\",\"all_relationships\":\"http://localhost:7474/db /data/node/0/relationships/all\",\"all_typed_relationships\":\"http://localhost:7474/db/data/node/0/relationships/all/{-list|&|types}\",\"property\":\"http://localhost:7474/db/data/node/0/properties/{key}\",\"self\":\"http://localhost:7474/db/data/node/0\",\"incoming_relationships\":\"http://localhost:7474/db/data/node/0/relationships/in\",\"properties\":\"http://localhost:7474/db/data/node/0/properties\",\"incoming_typed_relationships\":\"http://localhost:7474/db/data/node/0/relationships/in/{-list|&|types}\",\"data\":{\"name\":\"Microsoft\",\"Url\":\"\"}},{\"extensions\":{},\"metadata\":{\"id\":20,\"type\":\"WORK_WITH\"},\"property\":\"http://localhost:7474/db/data/relationship/20/properties/{key}\",\"start\":\"http://localhost:7474/db/data/node/21\",\"self\":\"http://localhost:7474/db/data/relationship/20\",\"end\":\"http://localhost:7474/db/data/node/0\",\"type\":\"WORK_WITH\",\"properties\":\"http://localhost:7474/db/data/relationship/20/properties\",\"data\":{\"active\":false}}],[{\"extensions\":{},\"met adata\":{\"id\":21,\"labels\":[\"Person\"]},\"paged_traverse\":\"http://localhost:7474/db/data/node/21/paged/traverse/{returnType}{?pageSize,leaseTime}\",\"outgoing_relationships\":\"http://localhost:7474/db/data/node/21/relationships/out\",\"outgoing_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/out/{-list|&|types}\",\"labels\":\"http://localhost:7474/db/data/node/21/labels\",\"create_relationship\":\"http://localhost:7474/db/data/node/21/relationships\",\"traverse\":\"http://localhost:7474/db/data/node/21/traverse/{returnType}\",\"all_relationships\":\"http://localhost:7474/db/data/node/21/relationships/all\",\"all_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/all/{-list|&|types}\",\"property\":\"http://localhost:7474/db/data/node/21/properties/{key}\",\"self\":\"http://localhost:7474/db/data/node/21\",\"incoming_relationships\":\"http://localhost:7474/db/data/node/21/relationships/in\",\"properties\":\"http://localhost:7474/db/data/node/21/properti es\",\"incoming_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/in/{-list|&|types}\",\"data\":{\"LinkedIn\":\"\",\"name\":\"Fred James\",\"PriorWork\":\"\",\"Domain\":\"UX\"}},{\"extensions\":{},\"metadata\":{\"id\":20,\"labels\":[\"Business\"]},\"paged_traverse\":\"http://localhost:7474/db/data/node/20/paged/traverse/{returnType}{?pageSize,leaseTime}\",\"outgoing_relationships\":\"http://localhost:7474/db/data/node/20/relationships/out\",\"outgoing_typed_relationships\":\"http://localhost:7474/db/data/node/20/relationships/out/{-list|&|types}\",\"labels\":\"http://localhost:7474/db/data/node/20/labels\",\"create_relationship\":\"http://localhost:7474/db/data/node/20/relationships\",\"traverse\":\"http://localhost:7474/db/data/node/20/traverse/{returnType}\",\"all_relationships\":\"http://localhost:7474/db/data/node/20/relationships/all\",\"all_typed_relationships\":\"http://localhost:7474/db/data/node/20/relationships/all/{-list|&|types}\",\"property\":\"http://localhost:7474/db/da ta/node/20/properties/{key}\",\"self\":\"http://localhost:7474/db/data/node/20\",\"incoming_relationships\":\"http://localhost:7474/db/data/node/20/relationships/in\",\"properties\":\"http://localhost:7474/db/data/node/20/properties\",\"incoming_typed_relationships\":\"http://localhost:7474/db/data/node/20/relationships/in/{-list|&|types}\",\"data\":{\"name\":\"Amazon\",\"Url\":\"\"}},{\"extensions\":{},\"metadata\":{\"id\":0,\"type\":\"WORK_WITH\"},\"property\":\"http://localhost:7474/db/data/relationship/0/properties/{key}\",\"start\":\"http://localhost:7474/db/data/node/21\",\"self\":\"http://localhost:7474/db/data/relationship/0\",\"end\":\"http://localhost:7474/db/data/node/20\",\"type\":\"WORK_WITH\",\"properties\":\"http://localhost:7474/db/data/relationship/0/properties\",\"data\":{\"active\":true}}]]}\r\nParameter name: content"}     Data: {System.Collections.ListDictionaryInternal}     HResult: -2147024809     HelpLink: null     InnerException: {"While trying to map some JSON into an object of type Neo4jClient.ApiModels.RelationshipApiResponse1[[GraphEntry.Domain.BusinessRelationship, WindowsFormsApp2, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]], we failed to find an expected property (self) in the JSON at path data[0][2].extensions.\r\n\r\nThe JSON block for this token was:\r\n\r\n"extensions": {}"}
Message: "Neo4j returned a valid response, however Neo4jClient was unable to deserialize into the object structure you supplied.\r\n\r\nFirst, try and review the exception below to work out what broke.\r\n\r\nIf it's not obvious, you can ask for help at http://stackoverflow.com/questions/tagged/neo4jclient\r\n\r\nInclude the full text of this exception, including this message, the stack trace, and all of the inner exception details.\r\n\r\nInclude the full type definition of <>f__AnonymousType23[[GraphEntry.Domain.Person, WindowsFormsApp2, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null],[GraphEntry.Domain.Business, WindowsFormsApp2, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null],[System.Collections.Generic.IEnumerable1[[Neo4jClient.RelationshipInstance1[[GraphEntry.Domain.BusinessRelationship, WindowsFormsApp2, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]], Neo4jClient, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=<IP_ADDRESS>, Culture=neutral, PublicKe yToken=b77a5c561934e089]].\r\n\r\nInclude this raw JSON, with any sensitive values replaced with non-sensitive equivalents:\r\n\r\n{\"columns\":[\"P\",\"B\",\"R\"],\"data\":[[{\"extensions\":{},\"metadata\":{\"id\":21,\"labels\":[\"Person\"]},\"paged_traverse\":\"http://localhost:7474/db/data/node/21/paged/traverse/{returnType}{?pageSize,leaseTime}\",\"outgoing_relationships\":\"http://localhost:7474/db/data/node/21/relationships/out\",\"outgoing_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/out/{-list|&|types}\",\"labels\":\"http://localhost:7474/db/data/node/21/labels\",\"create_relationship\":\"http://localhost:7474/db/data/node/21/relationships\",\"traverse\":\"http://localhost:7474/db/data/node/21/traverse/{returnType}\",\"all_relationships\":\"http://localhost:7474/db/data/node/21/relationships/all\",\"all_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/all/{-list|&|types}\",\"property\":\"http://localhost:7474/db/data/node/21/properties/{key}\",\ "self\":\"http://localhost:7474/db/data/node/21\",\"incoming_relationships\":\"http://localhost:7474/db/data/node/21/relationships/in\",\"properties\":\"http://localhost:7474/db/data/node/21/properties\",\"incoming_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/in/{-list|&|types}\",\"data\":{\"LinkedIn\":\"\",\"name\":\"Fred James\",\"PriorWork\":\"\",\"Domain\":\"UX\"}},{\"extensions\":{},\"metadata\":{\"id\":0,\"labels\":[\"Business\"]},\"paged_traverse\":\"http://localhost:7474/db/data/node/0/paged/traverse/{returnType}{?pageSize,leaseTime}\",\"outgoing_relationships\":\"http://localhost:7474/db/data/node/0/relationships/out\",\"outgoing_typed_relationships\":\"http://localhost:7474/db/data/node/0/relationships/out/{-list|&|types}\",\"labels\":\"http://localhost:7474/db/data/node/0/labels\",\"create_relationship\":\"http://localhost:7474/db/data/node/0/relationships\",\"traverse\":\"http://localhost:7474/db/data/node/0/traverse/{returnType}\",\"all_relationships\":\"http://local host:7474/db/data/node/0/relationships/all\",\"all_typed_relationships\":\"http://localhost:7474/db/data/node/0/relationships/all/{-list|&|types}\",\"property\":\"http://localhost:7474/db/data/node/0/properties/{key}\",\"self\":\"http://localhost:7474/db/data/node/0\",\"incoming_relationships\":\"http://localhost:7474/db/data/node/0/relationships/in\",\"properties\":\"http://localhost:7474/db/data/node/0/properties\",\"incoming_typed_relationships\":\"http://localhost:7474/db/data/node/0/relationships/in/{-list|&|types}\",\"data\":{\"name\":\"Microsoft\",\"Url\":\"\"}},{\"extensions\":{},\"metadata\":{\"id\":20,\"type\":\"WORK_WITH\"},\"property\":\"http://localhost:7474/db/data/relationship/20/properties/{key}\",\"start\":\"http://localhost:7474/db/data/node/21\",\"self\":\"http://localhost:7474/db/data/relationship/20\",\"end\":\"http://localhost:7474/db/data/node/0\",\"type\":\"WORK_WITH\",\"properties\":\"http://localhost:7474/db/data/relationship/20/properties\",\"data\":{\"active\":false}}],[{\"extension s\":{},\"metadata\":{\"id\":21,\"labels\":[\"Person\"]},\"paged_traverse\":\"http://localhost:7474/db/data/node/21/paged/traverse/{returnType}{?pageSize,leaseTime}\",\"outgoing_relationships\":\"http://localhost:7474/db/data/node/21/relationships/out\",\"outgoing_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/out/{-list|&|types}\",\"labels\":\"http://localhost:7474/db/data/node/21/labels\",\"create_relationship\":\"http://localhost:7474/db/data/node/21/relationships\",\"traverse\":\"http://localhost:7474/db/data/node/21/traverse/{returnType}\",\"all_relationships\":\"http://localhost:7474/db/data/node/21/relationships/all\",\"all_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/all/{-list|&|types}\",\"property\":\"http://localhost:7474/db/data/node/21/properties/{key}\",\"self\":\"http://localhost:7474/db/data/node/21\",\"incoming_relationships\":\"http://localhost:7474/db/data/node/21/relationships/in\",\"properties\":\"http://localhost:7474/db/data/node /21/properties\",\"incoming_typed_relationships\":\"http://localhost:7474/db/data/node/21/relationships/in/{-list|&|types}\",\"data\":{\"LinkedIn\":\"\",\"name\":\"Fred James\",\"PriorWork\":\"\",\"Domain\":\"UX\"}},{\"extensions\":{},\"metadata\":{\"id\":20,\"labels\":[\"Business\"]},\"paged_traverse\":\"http://localhost:7474/db/data/node/20/paged/traverse/{returnType}{?pageSize,leaseTime}\",\"outgoing_relationships\":\"http://localhost:7474/db/data/node/20/relationships/out\",\"outgoing_typed_relationships\":\"http://localhost:7474/db/data/node/20/relationships/out/{-list|&|types}\",\"labels\":\"http://localhost:7474/db/data/node/20/labels\",\"create_relationship\":\"http://localhost:7474/db/data/node/20/relationships\",\"traverse\":\"http://localhost:7474/db/data/node/20/traverse/{returnType}\",\"all_relationships\":\"http://localhost:7474/db/data/node/20/relationships/all\",\"all_typed_relationships\":\"http://localhost:7474/db/data/node/20/relationships/all/{-list|&|types}\",\"property\":\"http://localhos t:7474/db/data/node/20/properties/{key}\",\"self\":\"http://localhost:7474/db/data/node/20\",\"incoming_relationships\":\"http://localhost:7474/db/data/node/20/relationships/in\",\"properties\":\"http://localhost:7474/db/data/node/20/properties\",\"incoming_typed_relationships\":\"http://localhost:7474/db/data/node/20/relationships/in/{-list|&|types}\",\"data\":{\"name\":\"Amazon\",\"Url\":\"\"}},{\"extensions\":{},\"metadata\":{\"id\":0,\"type\":\"WORK_WITH\"},\"property\":\"http://localhost:7474/db/data/relationship/0/properties/{key}\",\"start\":\"http://localhost:7474/db/data/node/21\",\"self\":\"http://localhost:7474/db/data/relationship/0\",\"end\":\"http://localhost:7474/db/data/node/20\",\"type\":\"WORK_WITH\",\"properties\":\"http://localhost:7474/db/data/relationship/0/properties\",\"data\":{\"active\":true}}]]}\r\nParameter name: content"     ParamName: "content"     Source: "Neo4jClient"     StackTrace: "   at Neo4jClient.GraphClient.Neo4jClient.IRawGraphClient.ExecuteGetCypherResults[TResult](CypherQuery query) in C:\\projects\\neo4jclient\\Neo4jClient.Shared\\GraphClient.cs:line 901\r\n   at Neo4jClient.Cypher.CypherFluentQuery1.get_Results() in C:\projects\neo4jclient\Neo4jClient.Shared\Cypher\CypherFluentQueryTResult.cs:line 59\r\n   at GraphEntry.GraphEntry.LoadWorksWith(String name) in D:\\Dropbox\\Code\\GraphEntry\\GraphEntry\\GraphEntry.cs:line 187"     TargetSite: {System.Collections.Generic.IEnumerable1[TResult] Neo4jClient.IRawGraphClient.ExecuteGetCypherResultsTResult}

I'm away at the moment, and I've not read this fully, but in your last example, you can see the r isn't an array, but an object, you'll need to look at COLLECT so before the return do something like :.
.With("p,b,collect(r) as rels")
Then return rels as an IEnumerable

agreed, just found that this works but the 'stuff' that comes back is a lot more detailed than I need
var q = _graphClient.Cypher
.Match("(p:Person)-[r:WORK_WITH]->(b:Business) ")
.Where((Person p) => p.Name == "Fred James")
.Return((p, b, r) => new
{
Person = p.As(),
Business = b.As(),
Relatioship = r.As(),
}).Results;
it would be great if I can transform it into just 2 items

business name
active

happy to explore this more and make a repro

So just return that...
b.As<Business>().Name
Etc
?

the two properties are on different objects.

Business.name
[Relationship].active

I'd like to do something this simple but clearly I'm missing what the specific syntax should be

Can you try your latter version - but rename your C# properties to be lowercase - the same as the objects in the DB?
The Person and Business should be fine, as should the BusinessRelationship but it would be good to see what's happening

If I run something like this into my DB:
CREATE (p:Person {name:'Jeff'})-[:WORKS_WITH {active:true}]->(b:Business {name:'Jeffs Trousers'})
Then run the following C# code:
void Main()
{
	var gc = new GraphClient(new Uri("http://localhost:7474/db/data"), "neo4j", "neo");
	gc.Connect();

	var query = gc.Cypher
		.Match("(p:Person)-[r:WORKS_WITH]-(b:Business)")
		.Return((p,r,b) => new {
			P = p.As<Person>(),
			R = r.As<BusinessRelationship>().Active,
			B = b.As<Business>()
			});

	query.Results.Dump();
}

public class Business {
	[JsonProperty(PropertyName = "name")]
	public string Name {get;set;}
}

public class Person {
	[JsonProperty(PropertyName = "name")]
	public string Name {get;set;}
}

public class BusinessRelationship {
	[JsonProperty(PropertyName = "active")]
	public bool Active {get;set;}
}

I get the results I expect, I don't know why you're getting null unless Fred James doesn't exist in your DB, even then you should (and I do) get 0 entries, not a null set...

And that's with both the Bolt and Http clients...


Add pre-commit.ci

We can use this PR to decide what pre-commit hooks we want to use with pre-commit.ci
https://pre-commit.ci/
https://pre-commit.com/
https://pre-commit.com/hooks.html
I am not too fused on which tools we use but I would like to have things that:

auto format code
clean up files (like removing trailing whitespace)
prevent people from making git mistakes (large files, broken symlinks, etc)

@dotsdl @ianmkenney @IAlibay @atravitz -- Interested in hearing your thoughts!

Related #291 #363

@IAlibay @ianmkenney - This is ready for another look!
@atravitz - Let me know what you think! I also know you were looking at ruff which might be able to replace black and isort and add stuff like check for unused imports and the like.

I want to wait for others to provide some feedback, but we can discuss next steps.
Do we want to just merge this in and fix things as we go on PRs? Or do we want to also run the hooks on the files as part of this PR or a separate PR?

@mikemhenry cleaner to run it here once we're happy with the tooling choices

@mikemhenry please proceed with merge and setup of pre-commit CI. After this, we'll want to immediately apply the reformatting to gufe.
@atravitz also recommends we tell git blame to ignore the commit in which we applied the reformatting in order to maintain the usefulness of git blame; see here for details: https://www.stefanjudis.com/today-i-learned/how-to-exclude-commits-from-git-blame/

@mikemhenry cleaner to run it here once we're happy with the tooling choices

@mikemhenry please proceed with merge and setup of pre-commit CI. After this, we'll want to immediately apply the reformatting to gufe.

@IAlibay @atravitz -- can you break the tie here?

@mikemhenry cleaner to run it here once we're happy with the tooling choices

@mikemhenry please proceed with merge and setup of pre-commit CI. After this, we'll want to immediately apply the reformatting to gufe.

@IAlibay @atravitz -- can you break the tie here?

@mikemhenry I'll break it---go with David!

Cool, I will do the formatting in a separate PR but wait until that is done so there isn't a gap between having .pre-commit going and everything unformatted

Also need to add https://pre-commit.ci/#configuration-autofix_prs !!

I added a pull request template that mentions how to run the pre-commit.ci

Okay so plan is to merge in https://github.com/OpenFreeEnergy/gufe/pull/421 if it is green. Then I will add the commit from that merge to .git-blame-ignore-revs which I will add to this PR. That way we will have a functional git history, and this PR will correctly point to "me" as the blame for the config + the ignore recs, which will be helpful for who ever looks at this in the future


Update results corresponding to https://arxiv.org/abs/2303.11102v2 (version 2)

Fixes #6

I will put all the updated results into the correct folders and then merge.

@MartinWitt can you move the venn related files to the correct place and write about it in the README?


the server closed connection before returning the first response byte. Make sure the server returns 'Connection: close' response header before closing the connection

the server closed connection before returning the first response byte. Make sure the server returns 'Connection: close' response header before closing the connection

Add: When using the hertz client, you will be prompted with this error. It should be due to the peer closing the socket. Any good suggestions


ERR_AX_INTERNAL: Server returned status 400, but failed to decode response body: invalid character 'B' after top-level value

when I try to submit jobs from argo CLI, I run into errors when not using "--local" options.
(config "dev" is our dev cluster)
Francis-Macbook-Pro:.argo francis$ ~/bin/argo version
argo version 1.1.0-c9c286f+

Francis-Macbook-Pro:.argo francis$ ~/bin/argo --config dev job submit "Argo Simple Build"
ERR_AX_INTERNAL: Server returned status 400, but failed to decode response body: invalid character 'B' after top-level value

Francis-Macbook-Pro:.argo francis$ ~/bin/argo --config dev job submit "Argo Simple Build" --local
Submitting local template 'Argo Simple Build' from repo: https://github.com/argoproj/argo.git, branch: master
ID:               2ac9534f-c3d1-11e7-a584-0a58c0a88155
URL:              https://dev.applatix.net/app/timeline/jobs/2ac9534f-c3d1-11e7-a584-0a58c0a88155
Name:             Argo Simple Build
Status:           Init
Submitter:        admin@internal
Submitted:        Tue Nov 07 23:34:39 +0800 (1 second ago)
Duration:         0 seconds
Template:         Argo Simple Build
Arguments:
  parameters.COMMIT:  master
  parameters.REPO:    https://github.com/argoproj/argo.git

Fixed. The URL was not properly escaped.


Fix missing global folder bug, closes #4

I recently wiped my laptop and migrated to using fish and fish-nvm.
I now and don't have a global npm ("node_modules") folder anymore (personal preference 🙈, using yarn only).
Installing some packages led to the the following errors:
error /redacted/node_modules/@prisma/cli: Command failed.
Exit code: 1
Command: node preinstall/index.js
Arguments:
Directory: /redacted/node_modules/@prisma/cli
Output:
internal/fs/utils.js:220
    throw err;
    ^

Error: ENOENT: no such file or directory, lstat '/usr/local/lib/node_modules'
    at Object.realpathSync (fs.js:1529:7)
    at Object.794 (/redacted/node_modules/@prisma/cli/preinstall/index.js:1:53017)
    at __webpack_require__ (/redacted/node_modules/@prisma/cli/preinstall/index.js:1:154)
    at Object.500 (/redacted/node_modules/@prisma/cli/preinstall/index.js:1:30472)
    at __webpack_require__ (/redacted/node_modules/@prisma/cli/preinstall/index.js:1:154)
    at startup (/redacted/node_modules/@prisma/cli/preinstall/index.js:1:291)
    at module.exports.8 (/redacted/node_modules/@prisma/cli/preinstall/index.js:1:346)
    at Object.<anonymous> (/redacted/node_modules/@prisma/cli/preinstall/index.js:1:356)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10) {
  errno: -2,
  syscall: 'lstat',
  code: 'ENOENT',
  path: '/usr/local/lib/node_modules'

source | compiled

the problem is that the code calls to realpathSync before it knows it really exists. so I added a check there.
It's my first time touching ava again in a long time, and I don't know a cleaner way to mock modules, suggestions welcome.

probably also closes #6

It would be better to try/catch the realpath call and check for ENOENT. Existssync can introduce a race issue.

done!

Nah, this is fine.


Material design grid

Proposal/Query:
I am interested whether there is/would be a module that supports the material design grid - https://material.io/guidelines/layout/responsive-ui.html#responsive-ui-grid
I am aware of flex-layout, however it doesn't provide quite the same behaviour as the grid does.
Example: A row of MD grid with 3 elements with "col-4" (occupying 4 columns). On large screens we'll have 1 row with all 3 elements on the same row. For medium, 1 row with 2 elements followed by 1 row with 1 element. For small, they'd be stacked on top of each other.
The equivalent in flex-layout is quite verbose as you'd have to fill in the respective width % for all of them.
Thanks!

It seems that https://github.com/material-components/material-components-web/tree/master/packages/mdc-layout-grid is what I must be looking for.
Excuse me for the noise.


Provide arg/env var similar to tag_pattern

Is your feature request related to a problem? Please describe.
I have a monorepo with multiple directories which contains different projects and I want to control versioning with git-cliff in CI, at now I can achieve it via providing tag_pattern in config.toml & arg --include-path. This qay require multiple config.toml with different tag_pattern which should be configuted manually.
Describe the solution you'd like
Provide similar variable/arg to be able provide tag pattern dynamically.
Describe alternatives you've considered
Manually add config.toml per project with tag_pattern variable

Hey, this is now implemented in #526 which means you can use --tag-pattern argument!


Strange behavior on showing HTML-ish text

I noticed some code interprets text as HTML.

↓ maybe it should be...

Note: this PR's modification is just a rough ad-hoc implementation to try fixing it. May need a more total solution.

Thank you so much for fixing the bug!!
I would love to merge your pull request!
It's a great honor to receive your contribution because BooQs Dictionary is so inspired by mouse-dictionary.
Thank you so much!!
If you find bugs again, Please feel free to send pull requests to me.
Best regards!


ghpages?

Please create github pages to present the icons.

I have done this http://andrelgava.github.io/font-awesome-extension/
Soon I'll increase with new icons and a new documentation

awesome!


strange craft for books

It's the server guide, really useful if you need to know about something. Not a book at all :)

yep sorry :/

don't be sorry, asking someething is never a bad idea :)


Reduce install size by 30%

Hi @yannickcr! I'm working on reducing the disk usage of a typical ESlint setup, and found a couple cases where this plugin can be slimmed down with no functional impact:

Object.entries is supported in Node 6+ and does not need to be polyfilled.
Object.fromEntries is supported in Node 12+, and its usage here is minimal enough that an inline shim suffices.
Array.prototype.includes is supported in Node 6+
Object.values is supported in Node 7+

Why would this plugin have any reason to support Node 4 when ESlint itself only supports Node 10+?

Because it also supports down to eslint 3, which supports node 4. The gain is backwards compatibility, and avoiding a semver-major bump.

Have you evaluated the performance and disk usage tradeoff this is inherently making, or is this a purely philosophical stance?

It's a dev tool; install speed impact is negligible and disk usage is irrelevant.

I'm not sure that viewpoint is broadly shared. Developers have hundreds of projects on a machine, and this one is just under 8mb. Anecdotally, eslint-plugin-react accounts for more than 1GB of disk usage on my machine.

I have almost 500 projects on my personal machine that are fully npm-installed, a handful of them using eslint-plugin-react, and the total size of the entire dir that holds them (including .git and node_modules and the actual code) is around 20GB - anecdata is tricky :-/
If the goal is to take up less disk space, I'm happy to discuss ways to do that on those polyfill repos - that would have far greater impact than removing them from one eslint plugin.

That seems like a reasonable plan - I don't have exact numbers on the % impact of the polyfill repos, but estimating based on packagephobia seems to indicate they're at least 50% of the disk usage of this plugin.

Here's a number for one included polyfill. 3.39mb. Would be good at least to not have duplicated monstrous packages.
Would be good to not pay for theoretical users of eslint 3 and nonde 4.
<EMAIL_ADDRESS><EMAIL_ADDRESS>

Maybe releasing library major version every 10 major version of node.js would be "stable enough". @ljharb how long do you plan to support node v4?

Are there stats somewhere on the actual users of ESLint 3, node.js 4 that need the latest eslint-plugin-react for React 18 ?
I understand that people could be using older versions of ESLint and node.js, but supporting runtimes that were released 7 years ago seems a bit overkill. Even more so that for people stuck on old versions of ESLint and node.js are also probably stuck on React 0.14
Releasing a new major version of eslint-plugin-react would still allow these people to use the previous major version for their use case.

@onigoetz react 18 works just fine on ancient versions of node, so that assumption doesn't hold. Also, the instant we shipped a bugfix or a new feature, the folks stuck on the previous major would be left in the lurch. That's a high cost, compared to the virtually zero cost of "a few extra packages".
@chyzwar i maintain over 300 packages that still support node 0.4. So, "how long"? Probably forever.

True, maybe it would suck /if/ those people are actually using Node 4 and ESLint 3
On another hand, your package has 12'500'000 downloads a week, according to packagephobia, one install is 3.77MB (Unzipped, so let's say half that when transfered)
Which means (3.77/2)*12500000 = 23 562 500 MB = 23.5625 TB
In other words, this PR is proposing to shave off 7.8 TB of data transfer per week.
Here is an article written by chokidar's maintainer Paul Miller on how the newest version is massively smaller and the implications of that size : https://paulmillr.com/posts/chokidar-3-save-32tb-of-traffic/


Hanging during login on asp.net core running in linux docker container

Actually this doesn't seem to have anything to do with docker or linux. The client works fine when I run the debug build but the release build it hangs on login. I was seeing a similar hang with AsterNET as well. I am starting to think that .net core release build has some issue with network streams.
Here is the output:
In: Asterisk Call Manager/3.2.0
Out: Action: Challenge
ActionID: b9e3e647-1c13-4095-8319-13638ef61c5d
AuthType: MD5
In: Response: Success
ActionID: b9e3e647-1c13-4095-8319-13638ef61c5d
Challenge: 119804922

The problem I found with AsterNET was that it was looking for '\n' instead of "\n" which could mean different things on different platforms.

Oh yeah, just like with HTTP asterisk always terminates lines with /r/n. With my library, did you see similar behavior that you did before AsterNET fixed the char/string issue? I just use ReadLine() which I had hoped would consume \r|\n|\r\n but maybe that isn't the case...

It behaved like exactly the same problem, but I didn't dig enough to confirm, so it could be something else.  It could be the ReadLine when running on linux looks for a different line ending.

Ack. Just in case I'll start splitting by Byte[]{0x0d, 0x0a} instead.


Changing git.yazi icons and colors

Please describe the problem you're trying to solve
I saw the references to the THEME global but I can't figure out how to configure custom icons and colors.
https://github.com/yazi-rs/plugins/blob/549d76614d303a5d8dc6196296c875172a904a62/git.yazi/init.lua#L110-L127
Would you be willing to contribute this feature?

[ ] Yes, I'll give it a shot

Describe the solution you'd like
Can you provide an example, please?
Additional context
No response

These variables are reserved as Yazi doesn't support them yet, I can add them later.
Also, if you have any suggestions for icons/colors, feel free to share, and I'll consider setting them as the default.

Thanks! I can wait for Yazi to support customizing them as my preferences are, of course, not necessarily other people ones.

Done in https://github.com/yazi-rs/plugins/commit/0b9f325fe9d1edbc6d7893344cd308533ebd827a, doc https://github.com/yazi-rs/plugins/tree/main/git.yazi#advanced


ギフトをサーバに蓄積する対応

Codecov Report
Attention: 30 lines in your changes are missing coverage. Please review.
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Files
Coverage Δ

src/events/chrome-extension-message.ts
100.00% <100.00%> (ø)

src/pages/content/app/App.tsx
100.00% <100.00%> (ø)

src/pages/content/app/app.selector.ts
100.00% <100.00%> (ø)

src/pages/content/app/app.slice.ts
100.00% <100.00%> (ø)

...ent/features/gift-counter/gift-counter.selector.ts
100.00% <100.00%> (ø)

...ntent/features/gift-counter/gift-item/GiftItem.tsx
100.00% <ø> (ø)

src/pages/content/observer/gift/gift-observer.ts
100.00% <100.00%> (ø)

src/pages/content/store.ts
100.00% <100.00%> (ø)

...ontent/features/gift-counter/gift-counter.slice.ts
85.71% <77.27%> (-14.29%)
:arrow_down:

...ges/content/observer/metadata/metadata-observer.ts
33.33% <33.33%> (ø)

... and 1 more

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


New "splice" function in Calc doesn't work right for objects (maps)

For an array the correct elements are removed from the original array, but if the origin is an object, the elements are arranged into an array, and the removed elements returned are correct (in order of definition), but the original object is not modified (as per the spec). For instance, this illustrates the current behavior for an object:
c = {a: 1, b: 2, c: 3} -> { a: 1, b: 2, c: 3 }; splice c, 1, 1 -> [ 2 ]; c -> { a: 1, b: 2, c: 3 }

The other "problem" here is that there is no way to remove elements from an object without this function, so we kind of need it, but adding elements is really problematic, because:
a) We don't have any keys for the values, so we'd have to make up either a syntax for that, or use stupid ones line "_nnn".
b) Even adding values "in sequence" won't actually put the elements in order b/c we're using LinkedHashMap which doesn't have that capability.
We could change the syntax to add pairs for an object, but it would probably be better to actually make it a different function, like "spliceobj" b/c the semantics are different with the impossibility of adding elements "in place" with an object.


feat: Add parameter on Marker to control info window visibility state

This pull request adds a new parameter on Marker composables to control the info window visibility state.

Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[x] Make sure to open a GitHub issue as a bug/feature request before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[x] Ensure the tests and linter pass
[x] Code coverage does not decrease (if any source code was changed)
[x] Appropriate docs were updated (if necessary)

Fixes #16 🦕

Unfortunately the approach of having a state object for the info window's visibility will not work as only one info window can be visible at a time. An info window's visibility is completely managed by the SDK and so I think the best approach is to expose a show/hide method on a MarkerState. I should have a PR that builds on top of this shortly.


FlexIOSPI_Simple hangs Teensy 4.1

When this sketch is uploaded, nothing shows up on the serial monitor.
I looked at the code - found that the flex hardware arrays are not initialized right.  For now my simple fix is adding a parenthesis to delimit the arrays.
Also, if initialization fails it's best not to proceed with the code.  An infinite loop helps the user see the error messages & upload the code again without having to deal with the hung teensy.
These changes are in my repo https://github.com/shreekumar3d/FlexIO_t4 . I can submit pull requests too.
Thanks for your work on this, btw. This is a good starting point for my exploration of the FlexIO on the Teensy.

Sorry,
I was in the process of updating the FlexIO library, to hopefully handle all of the Shifters and Timers.  The manual mentions that there are 4 and 4 but actually there is 8 and 8...
Also There was some stuff off in the one of the sketches that was crashing as I was trying to print out the configuration registers, but I had not enabled the clock for all of the timers.
I just verified I can output one simple Flex Serial and read it back in on Serial using Beta Sparkfun Micromod.
you might check to see if the new stuff works now for you.  Also can always send a PR and I can take a look and probably pull in.
Thanks again

No probs. The serial works for me without issues.
I am mostly struggling with SPI at the moment. The SPI data lane & CS both work fine.  However, I don't see any clock output. Any clues for me ?


Issue with the scripts

I pulled the master branch today and with some of the scripts in the scripts folder i got:
"/bin/bash^M: bad interpreter: No such file or directory**"
Couldn't confirm if this is the windows/linux line-ending issue.

Can you let me know what environment (operating system, terminal, shell) you are running in? And which specific scripts failed?

Tried it on Xubuntu Linux with zsh. I probably checked embed.sh which worked. enusre.sh and one other failed with that message.

Tried on another linux machine and there is no problem here. Must be an issue with that PC. Sorry for being hasty in opening an issue.


Thiner borders of buttons

I like this theme, it is awesome, thank you! I've made only one small change for myself: for me current version of buttons has too bold border so I made it thiner.
Before:

After:

Feel free to merge it if you like this style!

Sorry - I used to have the thinner borders, but decided to make the borders thicker so they would be easier to see for the visually impaired. :grimacing: Thank you, though!


GraphQl Auth directive not working correctly with imported auth (cognito user pool)

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
with npm
If applicable, what version of Node.js are you using?
v16.13.1
Amplify CLI Version
7.6.5
What operating system are you using?
windows
Amplify Categories
auth, api
Amplify Commands
Not applicable
Describe the bug
I am using Graphql Api for my Amplify App.
The amplify app auth is imported from an existing cognito user pool (amplify import auth).
I can create and read my TlgDataTemplate but not update it.
See my two connected model with their directive :
type TlgDataTemplate @model
@auth(rules: [
  {allow: owner},
  {allow: owner, ownerField: "itemViewers", operations: [read]},
  {allow: owner, ownerField: "itemEditors", operations: [update, read]},
  {allow: groups, groups: ["MegaUsers"]},
  {allow: groups, groupsField: "organizationMegaUsersGroup"},
  {allow: groups, groupsField: "projectMegaUsersGroup"}
  {allow: groups, groupsField: "projectUsersGroup", operations:[read]},
])
{

  id: ID! @primaryKey
  name: String

  name: String!
  description: String

  itemEditors: [String]
  itemViewers: [String]
  organizationMegaUsersGroup: String!
  projectMegaUsersGroup: String!
  projectUsersGroup: String

  createdBy: String
  updatedBy: String

  tlgDataRoadmap: [TlgDataRoadmap] @hasMany
}

type TlgDataRoadmap @model
  @auth(rules: [
    {allow: owner},
    {allow: groups, groups: ["MegaUsers"]},
    {allow: groups, groupsField: "organizationMegaUsersGroup"},
    {allow: groups, groupsField: "projectMegaUsersGroup"}
    {allow: groups, groupsField: "projectUsersGroup"},
  ])
  {

  id: ID! @primaryKey
  name: String

  tlgDataTemplateTlgDataRoadmapId: ID!
  tlgDataTemplate: TlgDataTemplate @belongsTo

  organizationMegaUsersGroup: String!
  projectMegaUsersGroup: String!
  projectUsersGroup: String

  createdBy: String
  updatedBy: String
}

When i try to update TlgDataTemplate as normal user i got this issue :

The automatic Mutation.updateTlgDataTemplate.req.vtl :
## [Start] Mutation Update resolver. **
## Set the default values to put request **
#set( $mergedValues = $util.defaultIfNull($ctx.stash.defaultValues, {}) )
## copy the values from input **
$util.qr($mergedValues.putAll($util.defaultIfNull($ctx.args.input, {})))
## set the typename **
## Initialize the vars for creating ddb expression **
#set( $expNames = {} )
#set( $expValues = {} )
#set( $expSet = {} )
#set( $expAdd = {} )
#set( $expRemove = [] )
#if( $ctx.stash.metadata.modelObjectKey )
  #set( $Key = $ctx.stash.metadata.modelObjectKey )
#else
  #set( $Key = {
  "id":   $util.dynamodb.toDynamoDB($ctx.args.input.id)
} )
#end
## Model key **
#if( $ctx.stash.metadata.modelObjectKey )
  #set( $keyFields = [] )
  #foreach( $entry in $ctx.stash.metadata.modelObjectKey.entrySet() )
    $util.qr($keyFields.add("$entry.key"))
  #end
#else
  #set( $keyFields = ["id"] )
#end
#foreach( $entry in $util.map.copyAndRemoveAllKeys($mergedValues, $keyFields).entrySet() )
  #if( !$util.isNull($ctx.stash.metadata.dynamodbNameOverrideMap) && $ctx.stash.metadata.dynamodbNameOverrideMap.containsKey("$entry.key") )
    #set( $entryKeyAttributeName = $ctx.stash.metadata.dynamodbNameOverrideMap.get("$entry.key") )
  #else
    #set( $entryKeyAttributeName = $entry.key )
  #end
  #if( $util.isNull($entry.value) )
    #set( $discard = $expRemove.add("#$entryKeyAttributeName") )
    $util.qr($expNames.put("#$entryKeyAttributeName", "$entry.key"))
  #else
    $util.qr($expSet.put("#$entryKeyAttributeName", ":$entryKeyAttributeName"))
    $util.qr($expNames.put("#$entryKeyAttributeName", "$entry.key"))
    $util.qr($expValues.put(":$entryKeyAttributeName", $util.dynamodb.toDynamoDB($entry.value)))
  #end
#end
#set( $expression = "" )
#if( !$expSet.isEmpty() )
  #set( $expression = "SET" )
  #foreach( $entry in $expSet.entrySet() )
    #set( $expression = "$expression $entry.key = $entry.value" )
    #if( $foreach.hasNext() )
      #set( $expression = "$expression," )
    #end
  #end
#end
#if( !$expAdd.isEmpty() )
  #set( $expression = "$expression ADD" )
  #foreach( $entry in $expAdd.entrySet() )
    #set( $expression = "$expression $entry.key $entry.value" )
    #if( $foreach.hasNext() )
      #set( $expression = "$expression," )
    #end
  #end
#end
#if( !$expRemove.isEmpty() )
  #set( $expression = "$expression REMOVE" )
  #foreach( $entry in $expRemove )
    #set( $expression = "$expression $entry" )
    #if( $foreach.hasNext() )
      #set( $expression = "$expression," )
    #end
  #end
#end
#set( $update = {} )
$util.qr($update.put("expression", "$expression"))
#if( !$expNames.isEmpty() )
  $util.qr($update.put("expressionNames", $expNames))
#end
#if( !$expValues.isEmpty() )
  $util.qr($update.put("expressionValues", $expValues))
#end
## Begin - key condition **
#if( $ctx.stash.metadata.modelObjectKey )
  #set( $keyConditionExpr = {} )
  #set( $keyConditionExprNames = {} )
  #foreach( $entry in $ctx.stash.metadata.modelObjectKey.entrySet() )
    $util.qr($keyConditionExpr.put("keyCondition$velocityCount", {
  "attributeExists": true
}))
    $util.qr($keyConditionExprNames.put("#keyCondition$velocityCount", "$entry.key"))
  #end
  $util.qr($ctx.stash.conditions.add($keyConditionExpr))
#else
  $util.qr($ctx.stash.conditions.add({
  "id": {
      "attributeExists": true
  }
}))
#end
## End - key condition **
#if( $context.args.condition )
  $util.qr($ctx.stash.conditions.add($context.args.condition))
#end
## Start condition block **
#if( $ctx.stash.conditions && $ctx.stash.conditions.size() != 0 )
  #set( $mergedConditions = {
  "and": $ctx.stash.conditions
} )
  #set( $Conditions = $util.parseJson($util.transform.toDynamoDBConditionExpression($mergedConditions)) )
  #if( $Conditions.expressionValues && $Conditions.expressionValues.size() == 0 )
    #set( $Conditions = {
  "expression": $Conditions.expression,
  "expressionNames": $Conditions.expressionNames
} )
  #end
  ## End condition block **
#end
#set( $UpdateItem = {
  "version": "2018-05-29",
  "operation": "UpdateItem",
  "key": $Key,
  "update": $update
} )
#if( $Conditions )
  #if( $keyConditionExprNames )
    $util.qr($Conditions.expressionNames.putAll($keyConditionExprNames))
  #end
  $util.qr($UpdateItem.put("condition", $Conditions))
#end
$util.toJson($UpdateItem)
## [End] Mutation Update resolver. **

Expected behavior
Need to Create / Read / Update / delete my dynamodb elements using graphql api correctly and following specific auth directives
Reproduction steps

Create amplify project (react)
import Auth (existing cognito user pool)
create GraphQl api
add auth directive like above

GraphQL schema(s)

# Put schemas below this line

Log output

# Put your logs below this line

Additional information
No response

Hello,
I found a working solution for me.

I have updated my @auth rules like :

@auth(rules: [
  {allow: owner, ownerField: "createdBy", provider: userPools},
  {allow: owner, ownerField: "itemViewers", operations: [read], provider: userPools},
  {allow: owner, ownerField: "itemEditors", operations: [update, read], provider: userPools},
  {allow: groups, groupsField: "groupEditors", provider: userPools},
  {allow: groups, groupsField: "groupViewers", operations:[read], provider: userPools}
])

itemEditors: [String]
  itemViewers: [String]
  groupEditors: [String]
  groupViewers: [String]

Delete all .vtl files in the resolvers api folder
Delete all .vtl files in the build/resolvers api folder
Amplify mock || push

I think in certain circumstance that i do not know the graphql transformer v2 is not editing correctly the vtl files...
If you have some advices related to this issue ? Thank you a lot

@julienlaurent-migso when you say you tried to "update TlgDataTemplate as normal user", was that user listed in the owner or itemEditor fields? If not, it would not have permission to edit the entity. In your updated schema, it shouldn't be necessary to specify provider: userPools as that is the default.
amplify mock will place resolver files in the resolvers directory but they will be removed after the mock server is terminated. Unless you are specifically overwriting some VTL resolvers, the resolvers directory in your project should be empty. The build/resolvers directory will be populated every time amplify api gql-compile or amplify push is run and contains the resolvers that will be included in the push

Hello @edwardfoyle,
I have checked the authentification acces with the command amplify status api -acm <model> and everything is correct.
Everything works correctly when my resolver's folder is empty.
But when it is not empty some transformer issues happen (the mock is not working, and if i push my backend and my frontend, the graphql requests are not working correctly).
Is there a specific commande to terminate the mock server ?
See in my case, before launch amplify mock, my resolver folder is empty :

After the mock, all the resolver's files are correctly created :

So, if i kill the terminal :

All the resolver's files are still in the folder:

And at this moment, if i launch again a mock server my issues come..
You can see below, i launched again a mock server and in this case, it deleted all the resolver's files .. :

Hey @julienlaurent-migso are you still experiencing this issue? If you close the mock server with ctrl+c does it remove the resolvers as expected, or after killing the VSCode integrated terminal can you see if the process is still running (lsof -i :20002)?

Hi @josefaidt, Yes "ctrl+c" remove the resolvers, perfect !
Thank you very much for the trick ! It was annoying to do this action manually.
I have still lot of thing to learn. I close this issue


docker: Error response from daemon: Bind mount failed

Hello, when creating my container, I get the above error.
This is the command I am using:
sudo docker run -d --name=crashplan-pro -e USER_ID=0 -e GROUP_ID=0 -e CRASHPLAN_SRV_MAX_MEM=16G -e SECURE_CONNECTION=0 -p 5800:5800 -v /volume1/docker/appdata/crashplan-pro:/config:rw -v $HOME:/volume1:ro --restart always jlesage/crashplan-pro
Running on a Synology DS1821+
DSM 7.0.1-42218 Update 3
Docker had been working normal until about 7 days ago when Crashplan issued an update and I attempted to update the docker image.
Kind regards,

Try to replace $HOME with the actual path you want to map.
Note that /volume1, can't be mapped directly: you need to map folders under it instead.

Thank you, I got it working again!

On May 20, 2022, at 6:37 PM, Jocelyn Le Sage @.***> wrote:
Try to replace $HOME with the actual path you want to map.
Note that /volume1, can't be mapped directly: you need to map folders under it instead.
—
Reply to this email directly, view it on GitHub https://github.com/jlesage/docker-crashplan-pro/issues/376#issuecomment-1133438761, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJDNDIYBPIRGANYM66SXYW3VLAH2RANCNFSM5WQSK7PQ.
You are receiving this because you authored the thread.

Great!


Required class missing when executing "mvn clean package azure-functions:run"

Plugin name and version
azure-functions-maven-plugin version 1.6.0
Plugin configuration in your pom.xml
See attached zip file that contains full source
Expected behavior
Function should have run successfully as per example in - https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-azure-function-azure-cli?tabs=bash%2Cbrowser&pivots=programming-language-java
Actual behavior

I get the following error
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@7048f722
[DEBUG]   (f) settings = org.apache.maven.execution.SettingsAdapter@1ea930eb
[DEBUG]   (f) skip = false
[DEBUG] -- end configuration --
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  18.732 s
[INFO] Finished at: 2020-07-14T16:55:29-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.microsoft.azure:azure-functions-maven-plugin:1.6.0:package (package-functions) on project helloworldfunction: Execution package-functions of goal com.microsoft.azure:azure-functions-maven-plugin:1.6.0:package failed: A required class was missing while executing com.microsoft.azure:azure-functions-maven-plugin:1.6.0:package: com/microsoft/applicationinsights/internal/channel/common/ApacheSenderFactory
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>com.microsoft.azure:azure-functions-maven-plugin:1.6.0
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/ssampige/.m2/repository/com/microsoft/azure/azure-functions-maven-plugin/1.6.0/azure-functions-maven-plugin-1.6.0.jar
[ERROR] urls[1] = file:/C:/Users/ssampige/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar
[ERROR] urls[2] = file:/C:/Users/ssampige/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.0/org.eclipse.sisu.inject-0.3.0.jar
[ERROR] urls[3] = file:/C:/Users/ssampige/.m2/repository/org/apache/maven/maven-builder-support/3.3.3/maven-builder-support-3.3.3.jar
[ERROR] urls[4] = file:/C:/Users/ssampige/.m2/repository/org/eclipse/aether/aether-util/1.0.2.v20150114/aether-util-1.0.2.v20150114.jar
[ERROR] urls[5] = file:/C:/Users/ssampige/.m2/repository/org/sonatype/sisu/sisu-guice/3.2.5/sisu-guice-3.2.5-no_aop.jar
[ERROR] urls[6] = file:/C:/Users/ssampige/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
[ERROR] urls[7] = file:/C:/Users/ssampige/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.jar
Steps to reproduce the problem
set JAVA_HOME=C:\apps\jdk1.8.0_111
mvn -e -X azure-webapp:deploy
Source code attached if you want to try it. Note that the project was created by following the example https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-azure-function-azure-cli?tabs=bash%2Cbrowser&pivots=programming-language-java
helloworldfunction.zip

@ssampigegithub I run try to reproduce this issue by mvn clean package azure-functions:run but it works fine, it seems that the dependency library is broken, could you please try clean up the application insights library in your .m2 repository ${user.home}\.m2\repository\com\microsoft\azure\applicationinsights-core and try again?

Thanks. That worked.


Adding Sersic morphology model

Adding Jared's Sersic2DMorphology as a new option for source morphology

For reference here: https://github.com/pmelchior/scarlet2/pull/47#issuecomment-2032792187
The relevant code in the scarlet1 repo is here:
https://github.com/pmelchior/scarlet/blob/master/scarlet/morphology.py#L210-L281
If you want, I can take the first stab on porting it to scarlet2, and then you can reimplement the (elliptical) Gaussian  we need for #47, the Sersic and the Spergel profile models.

@charlotteaward I've coded up the profile morphology and the Gaussian and Sersic. Can you follow the approach here and bring over the SpergelProfile from scarlet1?

Fantastic, thank you! I'll work on the SpergelProfile.


Doesn't work for web.xml error-page

Hi,
When an error causes the webapp to use the page defined in the error-page tag in web.xml, this filter doesn't try to handle the error dispatch.
I believe this is due to the code in OncePerRequestFilter.java:
    /**
     * Whether to filter error dispatches such as when the servlet container
     * processes and error mapped in {@code web.xml}. The default return value
     * is "true", which means the filter will not be invoked in case of an error
     * dispatch.
     *
     * @since 3.2
     */
    protected boolean shouldNotFilterErrorDispatch() {
        return true;
    }

Changing that to false fixes the issue for me.
Another option is to override shouldNotFilterErrorDispatch in ForwardedHeaderFilter.java if the desire is to preserve OncePerRequestFilter (which appears to come from Spring).

So your proposal is, that ForwardedHeaderFilter processing should also (per default) happen during error dispatch. Correct?

closed due to inactivity


remind configuration when opening project

It has been configured manually, but every time I open the project, I will be reminded to configure, and the experience is not very good

Hmm, are you opening the same project when the notification appears or a new one?

Hmm, are you opening the same project when the notification appears or a new one?

Found the problem, in the new project settings, configure the host to solve, thank you


Update settings schema theme info

Updates the theme specific info object in settings_schema.json.

In a previous version of the theme editor, it appeared in a popover: https://help.shopify.com/themes/development/theme-editor/add-theme-info. Nowadays, that's a great question 😨 To be honest I'm not sure if there are other instances where this is seen.


Adds dinner menu

Description of changes
Adds dinner menu.
Open to discussion about styling and display.
Issue Resolved
n/a

@davidmolina do we need to display a food menu on this page? It seems dedicated to getting only the essential information to people interested in attending.


Update make-based build for recent CUDA-aware GASNet

I ran into the following linking error while building Legion in a CUDA- and Infiniband-enabled container:
mpicxx -o legion_python  main.cc.o     -L. -llegion -lrealm -lrt -lpthread -ldl -rdynamic -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib64/stubs -lcudart -lcuda -Xlinker -rpath=/usr/local/cuda/lib64 -L/opt/legate/install/gasnet/lib -lrt -lm -lgasnet-ibv-par -libverbs -L/lib -lmpi -lz
/usr/bin/ld: ./librealm.so: undefined reference to symbol 'cuDevicePrimaryCtxRelease'

This happens because GASNet references CUDA driver symbols not referenced by librealm.so, and thus not included when -lcuda is encountered. If we move the CUDA linking after GASNet it works:
mpicxx -o legion_python  main.cc.o     -L. -llegion -lrealm -lrt -lpthread -ldl -rdynamic -L/opt/legate/install/gasnet/lib -lrt -lm -lgasnet-ibv-par -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib64/stubs -lcudart -lcuda -libverbs -L/lib -lmpi -lz

The make-based flow should really be updated to include the GASNet-provided make snippet and use the CFLAGS/LDFLAGS defined there.

What is the "GASNet-provided make snippet"?
If can certainly move around the order of libraries on the link line so GASNet comes before CUDA. I want to make sure there is nothing else that needs to happen though to fix this.

@streichler, could you provide more info on the GASNet-provided make snippets?

When GASNet is installed, there's a .mak file for each conduit/threading mode that can be included by the Legion makefile.
It lives at $(GASNET)/$(CONDUIT)-conduit/$(CONDUIT)-par.mak (we only care about the "par" threading mode), and it defines things like GASNET_LIBS, GASNET_LDFLAGS, and GASNET_CXXFLAGS.

@streichler So does that mean that I need to include that and then use GASNET_CXXFLAGS when compiling any Realm files? I think I know what to do with GASNET_LIBS and GASNET_LDFLAGS. Also, is this only for GASNet-EX or does this exist on older versions of GASNet also?

Actually, looking again at what's in CXXFLAGS, I'd probably skip those.  They bake in things like optimization settings.
This should work on any version of GASNet-1 or GASNet-EX that's supported by our helper build scripts (i.e. 1.30.0+).

This change fixes my docker build.


Changing language, changing label don't keep state

If you have internationalization, and change label, in a CustomRadioButton if one button was selected, the state is not keep when rebuilding,

Related to #38


List spacing

Now that there is no list container, Word CSS has no good way of guaranteeing the same space after a list as after a paragraph. I have put margin-bottom:12pt on p.MsoListParagraphCxSpLast in the ISO stylesheet, but it is being ignored. Even if it were not, it would lead to unsightly gaps in nested lists.
Word CSS seems to have been hardcoded to expect space above and beyond list items.

Check against ISO template for native list styles in Word CSS: https://www.iso.org/iso-templates.html

Template does not include native Word list styles; but it does have space after all list items.

Great find, at least we know the right direction.

It turns out that the Word CSS command "mso-add-space:auto", which is on in Word by default, will make lists compact: there is space before or after a list item, but space between list items, regardless of their respective depths, is eliminated.
This looks nice. OTOH, it is not the behaviour of the ISO template. So I am enabling it for all stylesheets but ISO and GB: for those two, there will always be 12pt of space after each list item.

Also, need to force lists embedded within examples to be of the same font size as the example paragraphs (which is smaller).

Done. Note that the native positional styles, p.MsoListParagraphCxSpFirst p.MsoListParagraphCxSpMiddle p.MsoListParagraphCxSpLast, seem to be ignored, even though that is what is in the document: the class Word actually pays attention to is p.MsoListParagraph.

For GB we can apply the nicer fix too. They are not linked to the ISO template.

Done


Test WiFi on both COM-EXP and Xavier

With regards to the new iCub Head (UKIT009), we're required to evaluate the following configuration:

WiFi enabled on COM-EXP.
WiFi enabled on Xavier NX (there's a new antenna with a 90-deg connector).
Two Basler cameras streaming data at the given resolution and rate.
The two WiFi antennas kept 10 cm apart.
The COM-EXP doing something on the WiFi (to try to bother the Xavier).

cc @S-Dafarra @DanielePucci @maggia80

Alongside @davidelasagna we tested the new network configuration with the two wifi antennas.
In this configuration, the Xavier NX is connected to the wifi with the IP <IP_ADDRESS>, the com-express has the usual <IP_ADDRESS>.
We put the antennas of the two boards one over the other and we made stream the images from the Xavier NX, and we made the com-express ping at high frequency the server (<IP_ADDRESS>) with this command:
sudo ping -i 0.01 -s 65507 10.0.01

here the results of the glass to glass
1440x1600

1080x1920

cc @pattacini @maggia80 @S-Dafarra @DanielePucci

Super!

The reference performance was in https://github.com/icub-tech-iit/study-icub-head/issues/30#issuecomment-1270102582 with the image (I am not sure we put it in any other comment)

The latency there was ~160ms, so they are comparable I would say

Just a note, this result (https://github.com/icub-tech-iit/study-icub-head/issues/34#issuecomment-1293219647) was using 1080x1920

Very nice guys, definitively a solution to consider


Updated JAVA_HOME to jdk-17 in jenkinsfile

Signed-off-by: Owais Kazi<EMAIL_ADDRESS>Description
Updated jdk version to use 17 for gradle check on main, 2.x and 2.0 after jenkins will go public.
Issues Resolved
https://github.com/opensearch-project/OpenSearch/issues/2644
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

https://github.com/opensearch-project/OpenSearch/issues/1561

start gradle check


Destroy needs to reset the canvas to original size

This is a fix for #713
JSBin of the solution in action
Tested on:
Win7 x64: Firefox 34.0.5, Chrome 39.0.2171.95
Android 5.0.1 (Nexus 5) Chrome 39.0.2171.93
iOS 8.1.2 (iPad 3 retina) Safari 8 build 600.1.4

Closing per the updated fix in #855


PSCommand.Clone strips CommandInfo from inner Command objects

Steps to reproduce
$ps = $ps2 = $null
try {
    $ps = [powershell]::Create('CurrentRunspace')
    $cmdlet = [System.Management.Automation.CmdletInfo]::new('un-resolvable', [Microsoft.PowerShell.Commands.FormatDefaultCommand])
    $null = $ps.AddCommand($cmdlet).AddParameter("InputObject", 'test')

    $ps2 = [powershell]::Create('CurrentRunspace')

    # Setter for "Commands" calls PSCommand.Clone()
    $ps2.Commands = $ps.Commands

    $ps.Invoke()
    $ps2.Invoke()
} finally {
    if ($null -ne $ps2) {
        $ps2.Dispose()
    }

    if ($null -ne $ps) {
        $ps.Dispose()
    }
}

Expected behavior
test
test

Actual behavior
test
MethodInvocationException:
Line |
  13 |      $ps2.Invoke()
     |      ~~~~~~~~~~~~~
     | Exception calling "Invoke" with "0" argument(s): "The term 'un-resolvable' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again."

Environment data

Name                           Value
----                           -----
PSVersion                      7.1.0-preview.1
PSEdition                      Core
GitCommitId                    7.1.0-preview.1
OS                             Microsoft Windows 10.0.18362
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Fix
The clone constructor for SMAR.Command doesn't copy the value of the CommandInfo property from the command to be cloned.
/cc @TylerLeonhardt

This bug is called out in my PR here:
https://github.com/PowerShell/PowerShellEditorServices/pull/1258/files#diff-39fdedf9e00646e4c04b7deaa1225bb6

@TylerLeonhardt Do you want to get the fix in 7.0 Servicing?

@iSazonov I've opened a PR: https://github.com/PowerShell/PowerShell/pull/12301


Errors occur during runtime when bootstrap/cache has routes.php or misses packages.php and services.php

The problem

a. When I deplyed my codes where boostrap/cache directory has routes.php (along with packages.php and services.php), the deployed lambda function failed because the route cache has an invalid format.
b. When I deplyed my codes where boostrap/cache directory has packages.php and services.php, the deployed lambda function failed because the cache directory is absent or isn't present.

Questions

a. Should I exlude routes.php from a deployment package?
b1. Should I include packages.php and services.php?
b2. Is it safe to deploy locally generated packages.php and services.php to Lambda? (In other words, do those caches not depned on an environment where they were generated?)

An environment

php: bref:layer.php-73
Laravel: 6.20.7
laravel-bridge: 1.0.0

Logs
a. when bootstrap/cache has routes.cache
START RequestId: ****-****-****-****-**** Version: $LATEST
Erroneous data format for unserializing 'Symfony\Component\Routing\CompiledRoute'
END RequestId: ****-****-****-****-****
REPORT RequestId: ****-****-****-****-****	Duration: 102.57 ms	Billed Duration: 103 ms	Memory Size: 512 MB	Max Memory Used: 17 MB
Unknown application error occurred

b. when bootstrap/cache is empty
The /var/task/bootstrap/cache directory must be present and writable.
START RequestId: ****-****-****-****-**** Version: $LATEST
The /var/task/bootstrap/cache directory must be present and writable.
END RequestId:  ****-****-****-****-****
REPORT RequestId:  ****-****-****-****-****	Duration: 100.26 ms	Billed Duration: 101 ms	Memory Size: 512 MB	Max Memory Used: 14 MB
Unknown application error occurred

Did you ever find a solution ?

What I don't understand with this issue is how does that situation happen?
When following the official documentation is there any problem?

Sorry, I've left the team where bref was used, and I've forgotten the problem details. They may have used an older version. So I'll close this issue. I appreciate your replies.


[MouseGuard] character sheet Korean translation

Changes / Comments
Edited ko.json; added Korean translation according to the rule book.
Mouse Guard needs to thrive in Korea.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[Y ] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

@jiminshi
We use Crowdin to do translations. It is a website that makes adding new ones much easier. Send me an email at<EMAIL_ADDRESS>and I will give you an invite. :)
Thanks,
Cassie


AYS daemon to respect action dependencies

AYS Daemon walks over actions and marks the recurring ones as scheduled whether they're ready to be scheduled or not.
This is not the correct behavior and results in issues such as https://github.com/Jumpscale/jscockpit/issues/325

should be fixed by this
https://github.com/Jumpscale/jumpscale_core8/commit/bdd4646ebc2f5841dd997570e59e56f9dbc296b6


RoutingTrie can now handle a trailing slash correctly

Motivation:

#1735 made DefaultPathMapping generate a correct path pattern with a trailing slash,
but the RoutingTrie hasn't still handled the trailing slash correctly.

Modifications:

Made RoutingTrie handle the trailing slash correctly.

Result:

A service can be correctly mapped to the path with a trailing slash.

:+1:


Mailmap updates

https://docs.google.com/spreadsheets/d/19v8c7RDJlh6hn_BYcnPokxC4o1xrPpl7r20aK50vPe4/edit#gid=872835095 -- contributes-with-updates sheet has the updated sheet with this PR


feat: add vibe to repo list

ℹ Repository information
Repo issues: https://github.com/mondaycom/vibe/issues
The repository has:

[x] At least three issues with the good first issue label.
[x] At least 10 contributors.
[x] Detailed setup instructions for the project.
[x] CONTRIBUTING.md
[x] Actively maintained.

Thanks!

The project is not maintained for over a year..


Fix corner case in pattern optimization

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 73.89%. Comparing base (ba2083d) to head (dbf4f8f).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #100   +/-   ##
=======================================
  Coverage   73.89%   73.89%
=======================================
  Files          85       85
  Lines        9319     9318    -1
=======================================
  Hits         6886     6886
+ Misses       2433     2432    -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


verify config.Proxy during startup

effect
prevent the proxy get in fatal error during runtime
https://github.com/yahoojapan/authorization-proxy/blob/6c6a4ee54da058a1efc5d135cdba28462642267b/handler/handler.go#L49-L59
fix
return error if config.Proxy contains invalid values during startup, e.g.

scheme != 'http' || scheme != 'https'
host ~ '@'

https://github.com/yahoojapan/authorization-proxy/blob/6c6a4ee54da058a1efc5d135cdba28462642267b/usecase/authz_proxyd.go#L47-L66

continue in: https://github.com/AthenZ/authorization-proxy/issues/11


API's stopped working from node module but it's working if directly call to razorpay end points.

I am getting { statusCode: undefined, error: undefined } response in all functions used from node library. which is working fine previously.
below code  giving  { statusCode: undefined, error: undefined } response
var instanceRazorpay = new Razorpay({
    key_id: RAZORPAY_KEY_ID_TEST,
    key_secret: RAZORPAY_KEY_SECRET_TEST
});
instanceRazorpay.payments.fetch(payment_id)

below code giving success response
requestPromise({
                uri<EMAIL_ADDRESS>                json: true
            })

I am using Node.js v11.11.0 and<EMAIL_ADDRESS>Any one has idea why this happen?

Hi @orbitboy007 sorry for the delay . Could you please let us know if this issue was resolved?

Closing this issue for now, due to not getting any response, I have also tried this issue from my end and it's working . If you are still facing this same issue, please update to the most recent version to resolve this issue. If you need any help then please let us know.

hey everyone plzz resolve my issue
OPTIONS /api/user/order/checkout 204 0.535 ms - 0
{ id: '6649ef4c0ee8e1e2b04da082', iat:<PHONE_NUMBER>, exp:<PHONE_NUMBER> }
Razorpay API Error: {
message: undefined,
statusCode: undefined,
error: undefined,
stack: undefined
}


Upgrade/Level-up MEM chips to hold more attackers

Allow MEM chips to level up to hold several attackers: 1 at level 1, 2 at level 2, 3 at level 3 etc… they would only need be emptied when that upgraded limit is reached.
Obviously, since this is a very powerful upgrade, the price for leveling them up should be very high: 150 bits for the first level-up maybe ? then increasingly pricey.
If this still is too powerful, you could tie MEM chip max-level to hero upgrades, so that you'd have to first spend cryptocoins on upgrades, then pay a price in bits while playing the levels.
I had thought about this since a good time now, but MEM chips were already very powerful… but now that they need you to actively empty them, this idea can be considered ! The chips being able to swalow several attackers before needing a reset might even be a double-edged sword, as the player could forget their highly levelled-up chip even needs attention, and let a whole bunch of attackers slip through.
Such upgrades i thought about while reading about @The-JMFB 's forray into ultra-hard levels in Endless 80 and above. As designed, they are evidently very much fitted for end-game levels: they would serve as even more power-progression and defense potential in later levels, and provide new interesting and anticipated management choices in the form of chip level-ups of an entirely different scale.

I'll second that suggestion - a very good option to help balance the swarm effect of later levels!

I added this to  #124, because I cannot move an issue to the discussion-board (maybe @ochadenas can).

Implemented in version 1.33 (but will surely still undergo changes in later versions)


Update to Electron 25

We'll need to take a new build of Electron 25 in order to get a fix for https://github.com/electron/electron/issues/38991.
A fix for that was already merged to Electron main and 26-x-y, but still needs to be added to 25-x-y.

Fix has been merged to 25-x-y, now awaiting a release.


Create python-publish.yml

Hi @krylov-krylov
In future, please provide a full explanation about your suggested changes so we can take them into consideration.
For now, I am closing.
Thank you for your contribution.
<3


Issue with -i gemm argument

Hi,
I experience an issue when I try scale-sim with the argument -i gemm . The tool pops an assertion which mentions that the size per row in the csv file should be at least 4. However in the documentation example for MNK input format seem to be exactly 4 parameters (Layer Name, M, N, K). Am I missing something here?
My csv has the same format as the example in README of scale-sim for GEMM operations.
Thanks in advance,
Kostas.

Problem solved: In the last line of the csv, a comma needed to find all the elements within the row. I assume this is happened because of the elems = row.split(',')[:-1] in the load_array_gemms.


Crash Report: Argument rangeInElement (43,97) endOffset must not exceed descriptor text range (539, 605) length (66).

Description
Stacktrace
Please paste the full stacktrace from the IDEA error popup

Thanks for reporting! This issue has already been reported in #493 and has been solved in commit a4caa3cf552a4c36472dd610eaf15fc98df53859. A new release which includes the fix will be available soon.

Fixed in commit a4caa3c and will be included in release b0.6.1 in the near future.


Continuous deployment

[ ] Pick a subdomain.
[x] Set up a Travis job or something simple to generate the site and push it to an S3 bucket.
[ ] Put CloudFront in front of that bucket and point our subdomain at it.
[x] Delete the docs directory from the repo.

@jwilander Do we have any ideas on a subdomain? Do we need to talk to a PM about this or any of our goals?

The plan was developers.mattermost.com and @jasonblais is aware of the general plan but before we launch it or host it anywhere we'll probably want to run it past Ian or someone on the marketing side to make sure we're not stepping on any toes

Maybe it can be demoed on next platform meeting to get feedback?

I don't know how soon we're shipping this, I think what we really need is a checklist of things we need to do to make the marketing/business side happy

Overall the feedback from the marketing team is positive.
For now I'd say no action needed, but one thing to keep in mind is that a lot of the developer/technical content serves as a lead generation for marketing. Some decision makers discover Mattermost first through the developer content so we want to make it easy for those potential leads to have a happy path to the marketing content, for instance with links to case studies & articles at opportunistic points.
Of course, overall goal for marketing is to be low-key and not over-sell at developers.mattermost.com since only a small minority are potential leads. But something to think about down the road.
Another thing to think about is once we have Enterprise Edition features, we want to make it super obvious to the technical audience that they are EE features. Right now we don't have any, but later we might highlight the LDAP or Ethical Boundary plugins on the site. An option is to call it out in the title like we do in the docs, or have a nice EE badge that GitLab uses in their blog (https://about.gitlab.com/2017/10/22/gitlab-10-1-released/)

^To re-iterate, no action needed for now. Both can be revisited at a later time.

I'm fine with an easy path to marketing/sales, but the main goal here is to provide better documentation for developers. So I'll be strongly against any changes (if they ever exist) that impair the documentation for the sake of sales and/or marketing. Great developer documentation will help sell the product itself.
As for marking certain parts EE, yes I feel very strongly that to be fair to contributors we very clearly mark when documentation applies to an EE feature


Investigate smoke-test-prereqs generation: should it always contain all packages used?

For internal builds, I implemented this to make sure smoke-test can still run when authenticated feeds aren't available and packages aren't pushed to anonymously accessible feeds yet:
https://github.com/dotnet/source-build/blob/ea2042c6a31b4a83e136505e6cb3010b461da631/eng/SourceBuild.Tarball.targets#L236-L241
We should consider making the non-internal build work the same way: just keep all packages used by smoke test always. This simplifies both tarball creation and smoke-testing by removing a difference in behavior between internal and non-internal builds.

There is value in eliminating these in public builds to ensure that it works with the public nuget packages.  The way packages are captured for internal builds assumes that if they're downloaded by smoke-tests, then they are from the official build, but they may be from source-build.


Error GetBalance Kraken API

System information
Have I written custom code (as opposed to using zenbot vanilla): No.
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 16.04
Zenbot version (commit ref, or version): Commits on Jul 1, 2018
Zenbot branch: stable
NodeJS version: v9.11.1
Python version (when using a python script): Not using python
Exact command to reproduce (include everything): No
Did I make any changes to conf-sample.js?:
c.selector = 'kraken.XXMR-ZEUR'
c.strategy = 'trend_ema'
Describe the problem
I can't see the purchase and sale on the chart, the trade meter remains at 0, while there is trades done on Kraken. And I have the following error in the logs
getBalance error:
{ RequestError: Request timed out
at timeoutFn (/root/zenbot/node_modules/kraken-api/node_modules/got/index.js:131:53)
at asPromise (/root/zenbot/node_modules/kraken-api/node_modules/got/index.js:134:9)
at got (/root/zenbot/node_modules/kraken-api/node_modules/got/index.js:386:10)
at rawRequest (/root/zenbot/node_modules/kraken-api/kraken.js:42:25)
at KrakenClient.privateMethod (/root/zenbot/node_modules/kraken-api/kraken.js:171:20)
at KrakenClient.api (/root/zenbot/node_modules/kraken-api/kraken.js:96:16)
at Object.getBalance (/root/zenbot/extensions/exchanges/kraken/exchange.js:146:14)
at Object.syncBalance (/root/zenbot/lib/engine.js:211:16)
at saveSession (/root/zenbot/commands/trade.js:551:18)
at /root/zenbot/commands/trade.js:712:13
at /root/zenbot/extensions/exchanges/kraken/exchange.js:139:9
at response.then (/root/zenbot/node_modules/kraken-api/kraken.js:125:23)
at
at process._tickCallback (internal/process/next_tick.js:188:7)
name: 'RequestError',
code: 'ETIMEDOUT',
host: 'api.kraken.com',
hostname: 'api.kraken.com',
method: 'POST',
path: '/0/private/Balance',
protocol: 'https:',
url: 'https://api.kraken.com/0/private/Balance' }
2018-07-05 11:25:56 - error syncing balance
{ RequestError: Request timed out
at timeoutFn (/root/zenbot/node_modules/kraken-api/node_modules/got/index.js:131:53)
at asPromise (/root/zenbot/node_modules/kraken-api/node_modules/got/index.js:134:9)
at got (/root/zenbot/node_modules/kraken-api/node_modules/got/index.js:386:10)
at rawRequest (/root/zenbot/node_modules/kraken-api/kraken.js:42:25)
at KrakenClient.privateMethod (/root/zenbot/node_modules/kraken-api/kraken.js:171:20)
at KrakenClient.api (/root/zenbot/node_modules/kraken-api/kraken.js:96:16)
at Object.getBalance (/root/zenbot/extensions/exchanges/kraken/exchange.js:146:14)
at Object.syncBalance (/root/zenbot/lib/engine.js:211:16)
at saveSession (/root/zenbot/commands/trade.js:551:18)
at /root/zenbot/commands/trade.js:712:13
at /root/zenbot/extensions/exchanges/kraken/exchange.js:139:9
at response.then (/root/zenbot/node_modules/kraken-api/kraken.js:125:23)
at
at process._tickCallback (internal/process/next_tick.js:188:7)
name: 'RequestError',
code: 'ETIMEDOUT',
host: 'api.kraken.com',
hostname: 'api.kraken.com',
method: 'POST',
path: '/0/private/Balance',
protocol: 'https:',
url: 'https://api.kraken.com/0/private/Balance' }

Try the thinks suggested in doc from Zenbot:
zenbot/docs/exchanges/kraken.md


Update README.md

Removed typos.

What this PR does / why we need it:
This PR will remove the typos present in https://github.com/openebs/openebs/blob/master/documentation/README.md
fixes #719
#Hacktoberfest

Thanks @jishnujayakumar for fixing typo's.


pdftag: 1.0.4 -> 1.0.5

Motivation for this change
New release that removes hard coded path and unnecessary license install, also see https://github.com/NixOS/nixpkgs/pull/45666
Things done

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

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

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

@GrahamcOfBorg build pdftag

Success on x86_64-linux (full log)
Attempted: pdftag
Partial log (click to expand)
glibPreFixupPhase
post-installation fixup
Wrapping program /nix/store/386xq7cv7s6wc58ydcsvig8iv7ccmida-pdftag-1.0.5/bin/pdftag
shrinking RPATHs of ELF executables and libraries in /nix/store/386xq7cv7s6wc58ydcsvig8iv7ccmida-pdftag-1.0.5
shrinking /nix/store/386xq7cv7s6wc58ydcsvig8iv7ccmida-pdftag-1.0.5/bin/.pdftag-wrapped
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/386xq7cv7s6wc58ydcsvig8iv7ccmida-pdftag-1.0.5/bin
patching script interpreter paths in /nix/store/386xq7cv7s6wc58ydcsvig8iv7ccmida-pdftag-1.0.5
checking for references to /build in /nix/store/386xq7cv7s6wc58ydcsvig8iv7ccmida-pdftag-1.0.5...
/nix/store/386xq7cv7s6wc58ydcsvig8iv7ccmida-pdftag-1.0.5

Success on aarch64-linux (full log)
Attempted: pdftag
Partial log (click to expand)
glibPreFixupPhase
post-installation fixup
Wrapping program /nix/store/h0w8k4azjbk1hfy5s40c7pa40ia58dp5-pdftag-1.0.5/bin/pdftag
shrinking RPATHs of ELF executables and libraries in /nix/store/h0w8k4azjbk1hfy5s40c7pa40ia58dp5-pdftag-1.0.5
shrinking /nix/store/h0w8k4azjbk1hfy5s40c7pa40ia58dp5-pdftag-1.0.5/bin/.pdftag-wrapped
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/h0w8k4azjbk1hfy5s40c7pa40ia58dp5-pdftag-1.0.5/bin
patching script interpreter paths in /nix/store/h0w8k4azjbk1hfy5s40c7pa40ia58dp5-pdftag-1.0.5
checking for references to /build in /nix/store/h0w8k4azjbk1hfy5s40c7pa40ia58dp5-pdftag-1.0.5...
/nix/store/h0w8k4azjbk1hfy5s40c7pa40ia58dp5-pdftag-1.0.5

Success on x86_64-darwin (full log)
Attempted: pdftag
Partial log (click to expand)
Installing pdftag to /nix/store/b754sl006nyb2hp9dywcvmink5ax45wm-pdftag-1.0.5/bin/pdftag
Installing /private/tmp/nix-build-pdftag-1.0.5.drv-0/source/LICENSE to /nix/store/b754sl006nyb2hp9dywcvmink5ax45wm-pdftag-1.0.5/share/licenses/pdftag
Installing /private/tmp/nix-build-pdftag-1.0.5.drv-0/source/data/pdftag.desktop to /nix/store/b754sl006nyb2hp9dywcvmink5ax45wm-pdftag-1.0.5/share/applications
glibPreFixupPhase
post-installation fixup
Wrapping program /nix/store/b754sl006nyb2hp9dywcvmink5ax45wm-pdftag-1.0.5/bin/pdftag
strip is /nix/store/df6k4mgdjxciy0f637lryp7c9ln7n1m3-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/b754sl006nyb2hp9dywcvmink5ax45wm-pdftag-1.0.5/bin
patching script interpreter paths in /nix/store/b754sl006nyb2hp9dywcvmink5ax45wm-pdftag-1.0.5
/nix/store/b754sl006nyb2hp9dywcvmink5ax45wm-pdftag-1.0.5

Thanks.


Add legend for connection types

Connections are color-coded based on the relationship but it would be good to have a legend showing what each color represents

This has been added in https://github.com/jingyanwangms/mycelium/commit/8d5ae74adcb1df092d80dfffb659be6a782494a3


Allow use of zsh for spawning the ssh sessions instead of bash

I use zsh as my default shell, and it seems i2cssh launches a bash shell to invoke the ssh command to the cluster hosts.  This causes a couple of issues, the main of which is that anything in my .~/zshrc is now rendered moot and I need to duplicate them into ~/.bash_profile if I want them available in the i2cssh sessions (like iTerm2 shell integration for user variables, etc).
I couldn't see an option to choose which shell served as the invocation basis, and it doesn't seem to honor the users' default shell in macOS nor the Profile shell setting.

After reviewing recent commits, it looks like this was added a little while back, but the documentation wasn't updated.  THere is now a --shell option.  Closing this issue.


[CLOSED] Axiomatizing methods

 Issue by lastland
Wednesday Dec 06, 2017 at 18:54 GMT
Originally opened as https://github.com/antalsz/hs-to-coq/issues/57

Right now hs-to-coq only supports axiomatizing modules. It would be good if we can axiomatize only some certain methods inside a module.

 Comment by nomeata
Tuesday Apr 03, 2018 at 13:32 GMT

With methods, I assume you mean functions?

 Comment by antalsz
Friday Jun 28, 2019 at 19:08 GMT

We can now axiomatize definition – closing.


start testing examples of notebooks

Run tests on the example notebooks such that they always work (some need some work)

Coverage increased (+0.03%) to 93.186% when pulling ec84beae84b7d817dd90884809c821342afe3f21 on notebook_testing into 84883a7b05d041089518f130f03a33b7702a9621 on master.