Document Inbound capabilities

What should we do?
The Connector Runtime currently does not feature how to use the Inbound Webhook Connector.
We should document how this works and how it can be used:

[ ] Add Inbound documentation in Connector Runtime module
[ ] Add how to use Inbound capabilities in https://docs.camunda.io/docs/components/connectors/use-connectors/
[ ] Add how to configure Inbound to https://docs.camunda.io/docs/self-managed/connectors-deployment/connectors-configuration/
[ ] (optional) Add a general introduction of Inbound vs. Outbound in https://docs.camunda.io/docs/components/connectors/introduction-to-connectors/

Notes
This is the documentation we had in the SDK, but I think we cannot take that as is.

Inbound Webhook Connector Runtime (WORK IN PROGRESS)
see https://github.com/camunda/product-hub/issues/174
Currently work in progress - not yet stable!
Start Inbound Connector Runtime
Configure for C8 SaaS
You can use Camunda SaaS. Edit src/main/application.properties accordingly:
zeebe.client.cloud.cluster-id=xxx
zeebe.client.cloud.client-id=xxx
zeebe.client.cloud.client-secret=xxx
zeebe.client.cloud.region=bru-2

You can further configure the connection to Operate.  As a default, it will use the cluster-id and credentials configured for Zeebe, but can also configure it otherwise.
Connect to Operate locally using username and password:
camunda.operate.client.url=http://localhost:8081
camunda.operate.client.username=demo
camunda.operate.client.password=demo

Set specific credentials for Operate (different than for Zeebe API):
camunda.operate.client.client-id=xxx
camunda.operate.client.client-secret=xxx

Use Docker Compose
docker compose up --wait

URLs:

Zeebe: 'grpc://localhost:26500'
Operate: http://localhost:8081
Elasticsearch: http://localhost:9200

Make sure src/main/application.properties is configured properly:
zeebe.client.broker.gateway-address=<IP_ADDRESS>:26500
zeebe.client.security.plaintext=true

When running against a self-managed environment you might also need to configure the keycloak endpoint to not use Operate username/password authentication.
camunda.operate.client.keycloak-url=http://localhost:18080
camunda.operate.client.keycloak-realm=camunda-platform

Further Configurations
The Connector can read all properties from [https://github.com/camunda-community-hub/spring-zeebe](Spring Zeebe), this is especially important to configure the connection to Zeebe.
Calculate HMAC of your content
To start with, you'll need to decide:

HMAC algorithm (e.g., SHA-256)
Secret key (e.g., mySecretKey)

Example of calculating HMAC signature with gh-webhook-request.json file content and secret mySecretKey.
openssl dgst -sha256 -hmac "mySecretKey" < src/test/resources/hmac/gh-webhook-request.json

$> dd22cfb7ae96875d81bd1a695a0244f2b4c32c0938be0b445f520b0b3e0f43fd

Run
mvn spring-boot:run

Webhook Connector Properties

Property
Required
Default value
Description

inbound.type
yes

Needs to be set to webhook

inbound.context
yes

Context path used on Webhook REST endpoint (http://endpoint/inbound/context/)

inbound.activationCondition
yes

inbound.variableMapping
no

HMAC

inbound.shouldValidateHmac
yes
disabled
enabled or disabled

inbound.hmacSecret
no

Secret key shared between Camunda and webhook caller

inbound.hmacHeader
no

Header where the actual HMAC signature is stored

inbound.hmacAlgorithm
no

sha1, sha256, or sha512

Run example
Deploy process
Via Modeler or zbctl:
# working process { context=GITHUB_INBOUND, shouldValidateHmac=disabled }
zbctl --insecure deploy resource example/pull-request-notification.bpmn

# working process { context=GITHUB_INBOUND, shouldValidateHmac=enabled }
zbctl --insecure deploy resource example/pull-request-notification-hmac-on.bpmn

# broken process { context=GITHUB_INBOUND_BROKEN, shouldValidateHmac=disabled }
zbctl --insecure deploy resource example/broken.bpmn

Start a process
# webhook that activates for file example/pull-request-notification.bpmn
curl -XPOST -H 'Content-Type: application/json' localhost:8080/inbound/GITHUB_INBOUND  --data @example/webhook-payload-activates.json

# webhook that activates for file example/pull-request-notification-hmac-on.bpmn
curl -XPOST -H 'Content-Type: application/json' -H "X-Hub-Signature-256: sha256=98ae3cdd258e3f7e7334d7963c779237392d05d32e991a167f3943e9f8747de2" localhost:8080/inbound/GITHUB_INBOUND  --data @example/webhook-payload-activates-packed.json

# webhook that does not activate (wrong HMAC signature) for file example/pull-request-notification-hmac-on.bpmn
curl -XPOST -H 'Content-Type: application/json' -H "X-Hub-Signature-256: sha256=f93e172fb95efbc1406aee1140d6283f37a36b832cd4efc8b1e64114f29c86f3" localhost:8080/inbound/GITHUB_INBOUND  --data @example/webhook-payload-activates-packed.json

# webhook that is ignored (wrong type) for file example/pull-request-notification.bpmn
curl -XPOST -H 'Content-Type: application/json' localhost:8080/inbound/GITHUB_INBOUND  --data @example/webhook-payload-ignored.json

# webhook that reports an error (broken activation condition) for file example/broken.bpmn
curl -XPOST -H 'Content-Type: application/json' localhost:8080/inbound/GITHUB_INBOUND_BROKEN  --data @example/webhook-payload-ignored.json

Hi @berndruecker @tmetzke
Does this ticket include docs.camunda.io doc or shall we create a new ticket for that?

Let's track it all in here, I'd say. I added it to the description.

Comment from MO:

When we document the inbound connector, can we include a simple postman (or equivalent) example to help validate?
I'm struggling to debug a slack /slash command which points to a deployed process and gets stuck with some undebuggable error msg (/camunda_webhook failed with the error "dispatch_failed"). Atm it could be anything including my incompetency.
If we had a simple postman set up documented it would be easier to test if the URL was reachable

Docs will be in this PR (WIP):

https://github.com/camunda/camunda-platform-docs/pull/1593


Error while running simple_extractor.py

I ran the following command
python simple_extractor.py --dataset 'lip' --input-dir 'images' --model-restore 'pretrained/exp-schp-201908261155-lip.pth' --output-dir 'output'
input image is kept inside images folder
pretrained model is kept inside pretrained folder
I am getting some errors. I do not know how to resolve these errors. Please see the errors below

:
Let me know what is required to solve the errors

@soumyajit123dev resetting pytorch to an older version solved the issue on my end:
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch

Please try to run the CoLab notebook following https://colab.research.google.com/drive/1JOwOPaChoc9GzyBi5FUEYTSaP2qxJl10?usp=sharing.
If this works for you, basically this is related to the environment configuration based on your circumstances.


Bazel: Remove deprecated experimental_shortened_obj_file_path option

experimental_shortened_obj_file_path is depreacted since version 0.17.0 and activated by default. Since Tensorflow requires at least bazel 0.19.0, this flag can be savely removed.

Those test failures do not seem relevant.


With DE0002 How else are we going to be able to register the UnhandledException events on all platforms?

With DE0002 being given to projects that uses using System.Security.Permissions; just to be able to register an unhandled exception event and to control appdomains (which registering that event requires). How else are we going to be able to use that event without using the CAS that is says not to use?
I think the documentation should include ways of using that event without using CAS then...
consider a minimal example being a console application like so:

make a new console application dotnet new console and then add the package Microsoft.DotNet.Analyzers.Compatibility  at version 0.2.12-alpha.
Replace the Program.cs file with the following code:

using System;
using System.IO;
using System.Security.Permissions;
using System.Diagnostics;

namespace ConsoleApplication1
{
    public static class Program
    {
        [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.ControlAppDomain)]
        public static void Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
            throw new Exception("Unhandled.")
        }

        private static void MyHandler(object sender, UnhandledExceptionEventArgs args)
        {
            // log the exception to a file.
            var e = (Exception)args.ExceptionObject;
            _ = Directory.CreateDirectory("logs");
            var text = string.Empty;
            text += e.GetType().Name + ": " + e.Message;
            text += e.StackTrace!;
            GetInnerException(text, e.InnerException);
            File.WriteAllText($"logs{Path.DirectorySeparatorChar}UnhandledExceptions.txt", text);
            Debug.WriteLine(e.GetType().Name + ": " + e.Message);
            Debug.WriteLine(e.StackTrace);
        }

        // this is to recurse and capture all inner exceptions.
        private static void GetInnerException(string? text, Exception? ex)
        {
            if (ex != null)
            {
                text += "Inner Exception:\n";
                text += ex.GetType().Name + ": " + ex.Message;
                text += ex.StackTrace!;
                Debug.WriteLine("Inner Exception:\n");
                Debug.WriteLine(ex.GetType().Name + ": " + ex.Message);
                Debug.WriteLine(ex.StackTrace);
                GetInnerException(text, ex.InnerException);
            }
        }
}

Registering a handler for AppDomain.UnhandledException on .NET Framework does not require SecurityPermissionAttribute if the application domain already grants full trust to all assemblies; see AppDomain.IsFullyTrusted. So if you don't need to support partial-trust scenarios, you can delete that.
Your code sample seems to be using C# 8, which is not supported on .NET Framework anyway.

https://github.com/dotnet/dotnet-api-docs/pull/4384 is removing the SecurityPermissionAttribute from the AppDomain.UnhandledException example.

It is targeting .NET Core 3.1 and uses that to use that event for unhandled exceptions.


Add FAVICON_PROVIDER option for custom favicon service

Summary
Add FAVICON_PROVIDER option to allow configuring any favicon service.
Tested with The Favicon Finder (a demo deployment of mat/besticon mentioned in the related issue), and also with Favicon Kit.
e.g.
archivebox config --set FAVICON_PROVIDER='https://besticon-demo.herokuapp.com/icon?url={}&size=32..64..64'

Questions
I noticed that the Google URL was hard-coded in two places: archivebox/extractors/favicon.py and archivebox/index/schema.py. I made changes in both, but I'm not sure if I should have done the latter -- the top of that file says not to add any more features to the file. Is it better to leave it as is, with the old hard-coded Google URL, or change it?
Related issues
#1117
Changes these areas

[ ] Bugfixes
[x] Feature behavior
[ ] Command line interface
[x] Configuration options
[ ] Internal architecture
[ ] Snapshot data layout on disk

This is perfect, thanks! the change to schema.py is ok, I think the new behavior is expected in this case.


Response headers are not written

In this small example (https://gist.github.com/divarvel/4c59b15d6921f79884b7638905faa4e9) we can see that headers are not written in the answer (the Location header is missing).
Indeed, write_response does not seem to include them
https://github.com/steveklabnik/simple-server/blob/master/src/lib.rs#L189

FWIW https://github.com/divarvel/simple-server/tree/issues/71
It doesn't handle empty headers maps correctly and the code is ugly, but that's a start

hey @divarvel ! thanks for filing, we may have some comments on the PR but it will be easiest to make them there, so please open one and we can chat! appreciate your work on this ✨

Here it is https://github.com/steveklabnik/simple-server/pull/75

closed with #75


Bug in the 3D add-on on the LiveTest version

I have prepared a 3D model in a file .fbx and decided to add it to the project. But there is one problem - to add a model, you need to make it under the data uri protocol, but some characters are not encoded in base64, such as a percentage with two circles and so on. How to solve it?

if you import the file as a data URL using the files extension, does it work?

No, because the "Files" extension can only load data from a uri but unfortunately it is impossible to convert them to a uri. What to do?


Go indexing server doesn't see the version v<IP_ADDRESS> of github.com/shenwei356/kmcp

What version of Go are you using (go version)?
1.19

This URL<EMAIL_ADDRESS>returns a different version for some reason:
{"Version":"v0.8.4-0.20220816044600-3dc30b20c9cf","Time":"2022-08-16T04:46:00Z","Origin":{"VCS":"git","URL":"https://github.com/shenwei356/kmcp","Hash":"3dc30b20c9cf3d166feeeae34013ff8c47697f54"}}

Duplicate of #54515


Latest release not executing tests

Bug
Version 1.5.0
Running webpack-dev-server 2.11.2
Command: start-server-and-test start-e2e http-get://localhost:4200 test-e2e
where:
"start-e2e": "webpack-dev-server --port=4200 --env.MODE=e2e"
"test-e2e": "testcafe -c 2 chrome:headless e2e/tests/nsl"

It gets stucked at running webpack-dev-server, doesn't execute test command(aka nothing happens, tests are not running)...

Can I see a reproducible repo? Also, did this work in previous versions of this package?

sorry it the client code, so I cannot post a repo, and yes it was working
for 1.4.1 which we have downgraded now in order to keep builds running
On Tue, Jul 10, 2018 at 4:37 PM Gleb Bahmutov<EMAIL_ADDRESS>wrote:

Can I see a reproducible repo? Also, did this work in previous versions of
this package?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bahmutov/start-server-and-test/issues/73#issuecomment-403957588,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHTgcYN-x4bivFH0-tX26PeiYDY4X8Lks5uFRB7gaJpZM4VKEh0
.

hmm, this might be a regression, but I would need a reproducible example (we do have e2e tests in this repo) to debug this. Even a simple repo might be enough to reproduce

Let me see if I can create a skeletin with reproducabilty
On Wed, Jul 11, 2018, 03:48 Gleb Bahmutov<EMAIL_ADDRESS>wrote:

hmm, this might be a regression, but I would need a reproducible example
(we do have e2e tests in this repo) to debug this. Even a simple repo might
be enough to reproduce
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bahmutov/start-server-and-test/issues/73#issuecomment-404077412,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHTgY9IfoRN8w9YqbbPJNWmu6N-frYKks5uFa3kgaJpZM4VKEh0
.

Resolved, it was not related to a library, we were doing some data seeding when attaching middleware to our webpack-dev-server so library was not getting response from the port...
@bahmutov  you can close this issue

Thanks for looking into this


@conda-forge-admin, please add bot automerge

Additional comment:
@conda-forge-admin, please add bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/de-feiertage-feedstock#2.


[#137092871] Increase thresholds for job queue length monitor

What
Since increasing the parallelisation of our acceptance tests we have
seen higher spikes in the cf.cc.job_queue_length.total metric, resulting
in our monitor for CI being triggered (staging and production do not
currently run the acceptance tests).
We increase the thresholds to eliminate these false alerts. Some minor
investigation was done[1] to make sure the relevant components (api,
cells) are coping with the increased load and the alerts really are
false.
[1] https://www.pivotaltracker.com/story/show/137092871
How to review
The code review required is almost nil. However, the real test is that we don't get false alerts during deployments. I recommend waiting for several deploys to happen and for us to retrospectively look over Datadog to ensure the monitors weren't triggered.
Who can review
Anyone but me.

LGTM


feat(RELEASE-1283): addons flow

created new addons pipeline - push-to-addons-registry
run-file-updates task now has a configurable secret name to be
passed to IRs
merge-requests created by file-updates now get added to release CR status
updated unit tests for file-updates
new mandatory parameter resultsDirPath added to run-file-updates task used in pipelines

are we still waiting for successful e2e runs? are they stable?

are we still waiting for successful e2e runs? are they stable?

It passed on this PR (is going to rerun with rebase though) so I'd say we can wait for it

/retest

Commit isn't signed (we are meeting today to discuss dropping that requirement)

e2e was broken today and was supposed to be fixed with this: https://github.com/konflux-ci/release-service-catalog/pull/699
It's not confirmed yet, but hopefully it should be working now.

/retest


bugfix: markStopped may failed, will cause container status not right

Signed-off-by: Michael Wan<EMAIL_ADDRESS>Ⅰ. Describe what this PR did
markStoppedAndRelease do three things now:

change  container status to stopped
close container io
delete container networks

2 and 3 may failed, it will make container status not changed, so we should ensure container status can be synced as soon as possible
Ⅱ. Does this pull request fix one issue?
Ⅲ. Describe how you did it
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

LGTM

Codecov Report

Merging #1322 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #1322      +/-   ##
==========================================
- Coverage   17.36%   17.35%   -0.01%
==========================================
  Files         189      189
  Lines       11793    11799       +6
==========================================
  Hits         2048     2048
- Misses       9597     9603       +6
  Partials      148      148

Impacted Files
Coverage Δ

daemon/mgr/container.go
0% <0%> (ø)
:arrow_up:


Separate file for ignore (and glob) config

I want to reuse my rules for different repos, but copying .markdownlint-cli2.jsonc also copies globs and ignores specific to one repo. .markdownlintignore is not supported anymore.

I don't think I want to split every option out into its own file. It's annoying enough when every tool wants to add a single file to the repo. But you could do what you want by making the main file .markdownlint-cli2.cjs and loading multiple files to create the unified configuration object.
Something like:
return {
  "config": {
    ...
  },
  "ignores": require("./myignores.json"),
  "globs": require("./myglobs.json")
};

Thanks! I might go with this then.
You can close this if you want. The config and precedence docs are not very clear to me. I might come back later and comment more here, when I have the time to think my migration situation through, if that's alright with you.
However, I think there's enough precedence out there for separate .ignore files. It could be made optional, so as not to clutter people's workspaces.


Simplify build.yaml's  "deps_linkage" logic

this is part of ongoing effort to reduce the amount of extra build metadata that's provided from outside of bazel BUILD file.
(Ideally all the metadata would be extracted from the bazel BUILD - but now we provide quite a bit of extra info through the _BUILD_EXTRA_METADATA dictionary).
deps_linkage was added here https://github.com/grpc/grpc/pull/23335 but since then, the number of targets in Makefile was reduced quite a bit and all the targets there are now actually using deps_linkage=static and the flag is no longer useful.

See https://github.com/grpc/grpc/pull/25491#issuecomment-783595527 for changes to the generate project - this fixes the content of build_autogenerated.yaml, but we still need to investigate why sanity tests report green even though  the generated files are not up to date currently.


Generate Prometheus extension from file

Summary
Sometimes we don't have access to the Prometheus server but instead we have an output example in a file. I think it would be useful to be able to also parse the Prometheus output from a file.
Details
I would imagine the feature would work as the current scrape we have for an endpoinmt, but instead you can just choose a file. If the file is the correct format, you get the prometheus extension auto-filled, just like the scrape one.
Use Cases
When creating an extension for a customer, we don't always have access to the customer's environment to fetch the data, however, we can get an example output from them sent to us, in a file.
Challenges
It should be fairly simple to adapt the current scraper to look at the data from a file instead of from an endpoint. The scrape logic is exactly the same, it just changes the input.

closed as part of 2.0.0


Style Switcher

I was thinking about making a gtk4 blueprint template myself, but I think it would be nice to have a style switcher. BlackBox and My App has one. GJS also as has the pattern with troll

Great idea!

There are now adw directories for Libadwaita samples like this to be added.


Generated TS file doesn't specify if a param is optional

Description
The generated TS file marks all params as optional, where really only routes containing ? should be marked as optional in the generated types.
Suggestion
Line 68 of index.d.ts marks every param as optional. It looks like it should be possible to know whether a route contains a question mark during the generating process.
Alternatives
I tried some complicated extraction technique combining the generated TS file and the generated ziggy file, however that depends on the generated ziggy file being a ts file also, with the object set to as const.

Yeah it would definitely be possible to include this info in the generated .d.ts file, I played around with it at one point.

@bakerkretzmar that would be awesome, do you have any code to share? I'd be happy to open a PR if there is a base I can work from

I've opened a PR for this fix #697


The parser ignores lexer errors

Aim
/*

Expected Behavior
Compilation error
Bug
Currently, the parser is ignoring lexer errors:
https://github.com/noir-lang/noir/blob/88682da87ffc9e26da5c9e4b5a4d8e62a6ee43c6/compiler/noirc_frontend/src/parser/parser.rs#L57-L61
To Reproduce

Installation Method
Compiled from source
Nargo Version
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
No
Support Needs
No response

@f01dab1e good catch -- can you pick this up?
This change was made in this PR: https://github.com/noir-lang/noir/pull/2760
Pinging at @jfecher for visibility.
Naively, I would see if we could convert a LexerError into a ParserError so there is no change in the API


MAINT: Avoid problematic sip

Let's see if this fixes CIs

Marking for merge-when-green, posted the issue to the pyqt mailing list


Ability to add multiple custom exports to ModelAdmin

I would like to be able to export different datasets. I currently have this for exporting a model and related data:
class GameAdmin(ExportMixin, admin.ModelAdmin):
    resource_class = GameResource
    # ...

However Games also have Levels, what I would like is having a mechanism to add multiple custom exports similar to how https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter works:
class GameAdmin(ExportMixin, admin.ModelAdmin):
    resource_class = [LevelsResource, GameResource]
    # ...

Which would let me export Level data.

I think, this issue has to reopen
I am using django import and export in django admin
But we want multiple types of export for the same model
Eg. We have investors model
We want exports like

Investors data for issuing shares
Investors data for compliance data with different fields
Founders to see investors with invested project.

having an option to use multiple resource classes will be very handy
I have models with various M2M relationships and sometimes can get export data for only some of those without a need 2 touch the rest
it's all doable using export first, etc etc but would be much easier to choose the resource class when you need to update just some (sets) of the data


Laravel 5.5 : MongoDB & hasManyThrough() relation

I use MongoDB with Laravel: https://github.com/jenssegers/laravel-mongodb
I have two tables (feeds, users) and a collection on MongoDB (articles) that come in this form:

articles (MongoDB):
_id (ObjectID)
feed_id
title
feeds (MySQL):
id
user_id
name
users (MySQL):
id
name

I would like to retrieve all the articles of a user while passing by "feeds".
For this, I use the hasManyThrough() relation in the User model:
public function articles()
    {
        return $this->hasManyThrough(
            Article::class,
            Feed::class,
            'user_id',
            'feed_id',
            '_id',
            'id'
        );
    }

But the problem is that on each user, I have the same articles listed, it looks like it does not take into account user_id...

Hey mate,
Did you see this? https://github.com/jenssegers/laravel-mongodb#relations
Relations

Supported relations are:

    hasOne
    hasMany
    belongsTo
    belongsToMany
    embedsOne
    embedsMany

Although inefficient, here's how you can go about defining the relationship:

public function feeds()
{
   return $this->hasMany('App\Feeds');
}

public function articles()
{
    $feeds_ids = $this->feeds()->select('feeds._id')->get()->pluck('_id');
    return Articles::whereIn('feeds_id', $feeds_ids);
}

Doing this, will give you the same feel as using a hasManyThrough relationship.


[BUG]

Describe the bug
The installation via ansible fail with this message:
"Failed to download key at https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc: HTTP Error 401: Unauthorized"
To Reproduce

Steps to reproduce the behavior

step1:  follow the installation steps described on https://github.com/hnimminh/libresbc/blob/master/documents/Installation.md

Actual behavior
The installation process fail to download the fsstretch-archive-keyring.asc before installing the rquirement packages.
I saw that the file under the link https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc is password protected.
Expected behavior

The installation process finish without errors.

Log & Screenshots

If applicable, add screenshots or log to help explain your problem.

Additional context

Add any other context about the problem here, such as:

OS: Debian 10.12
Linux 1 4.19.0-20-amd64 #1 SMP Debian 4.19.235-1 (2022-03-17) x86_64 GNU/Linux

you should most definitely rename this issue to describe more
something like Failed to download key at <url> HTTP Error 401: Unauthorized

hmmm.., seem signalwire has changed, the require PAT to access their repo
https://freeswitch.org/confluence/display/FREESWITCH/HOWTO+Create+a+SignalWire+Personal+Access+Token

Also running into this issue. I am able to create the PAT.
It seems that Freeswitch already has Ansible playbook premade. There suggestion is:

# You could set the password here or on your CLI. We set it in group_vars/all in our Ansible Inventory
#  vars:
#    - signalwire_freeeswitch_key: pat_XXXXX

@camglegg I will add that support libresbc deployment in this weekend, once done, I will need your help to verify the fix.
I'm also thinking that use Docker, so that everyone can deploy libresbc easier.

@camglegg I will add that support libresbc deployment in this weekend, once done, I will need your help to verify the fix.
I'm also thinking that use Docker, so that everyone can deploy libresbc easier.

I am more than happy to test the Ansible and Docker configurations!
I was working on updating the freeswitch.yml platform task, but there is quite a bit going on in that file. It will most likely be faster for you to update it.
I really appreciate your help!! Let me know if there is anything you need from me.

@camglegg @ibexnet can you re-test on master branch?

Once you register and get SignalWire Personal Access Tokens, you will need to declare ansible extra variable to install FreeSWITCH (when you run ansible-playbook with tag platform or freeswitch), Example:
ansible-playbook playbooks/deployment.yml -i inventories/production -l "<machine-name>" -t "platform,libre,nginx,captagent" -e "signalwire_pat_token=Your-SignalWire-Personal-Access-Tokens"

Yes! I will test this today. Thanks!

@hnimminh The playbook works perfectly!
Target Machine:
OS: Debian GNU/Linux 10 (Buster) x86_64
Host: KVM/QEMU
Kernel: <IP_ADDRESS>-amd64
Host Machine
Ansible Version: 2.10.8
Python Version: 3.10.4
Playbook Runtime: 00:30:40
Let me know if you need anymore information and Thank you for the quick fix!
Full Log File (PAT Token Removed)
cameronglegg_FreeSwitchPAT_ansible.log

Thanks @camglegg


code dependencies webpack plugin result, how to write the plugin

I write a plugin. At  the compiler emit, I collect  all image url and  write to a file foo.json.
But in my code, I need the  image url , so  I must  run  webpack twice, that  I  can  get  correct result.
The first time  is used to collect  image url.
This didn't turn out the way I expected.Maybe I can  replace module in the compiler emit?

Can you re-open at Stack Overflow with more details? Thanks. :+1:


GSON no-args constructor.

To replicate:

uncomment the new CacheDataSource() injection line in DataSourceSingleton.java (line 53).
start TravelTracker and log in as a claimant.
create at least one Claim (or Item or Tag)
delete one or more of the things you created in 3.
close the app (completely)
restart the app
GSON crashes as detailed below

Only when deserializing a list of DeletionFlags for the CacheDataSource (line 106), GSON cannot find the no-args constructor of Document().  It can for other serialization/deserialization tasks.  Perhaps it's because the Document is wrapped by DeletionFlag in this case.
04-06 09:19:04.112: E/AndroidRuntime(10083): FATAL EXCEPTION: main
04-06 09:19:04.112: E/AndroidRuntime(10083): java.lang.RuntimeException: Unable to start activity ComponentInfo{cmput301w15t07.TravelTracker/cmput301w15t07.TravelTracker.activity.LoginActivity}: java.lang.RuntimeException: Failed to invoke private cmput301w15t07.TravelTracker.model.Document() with no args
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at android.os.Handler.dispatchMessage(Handler.java:99)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at android.os.Looper.loop(Looper.java:137)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at android.app.ActivityThread.main(ActivityThread.java:5039)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at java.lang.reflect.Method.invokeNative(Native Method)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at java.lang.reflect.Method.invoke(Method.java:511)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at dalvik.system.NativeStart.main(Native Method)
04-06 09:19:04.112: E/AndroidRuntime(10083): Caused by: java.lang.RuntimeException: Failed to invoke private cmput301w15t07.TravelTracker.model.Document() with no args
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at com.google.gson.internal.ConstructorConstructor$3.construct(ConstructorConstructor.java:107)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:186)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:103)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:196)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:81)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:60)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at com.google.gson.Gson.fromJson(Gson.java:810)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at com.google.gson.Gson.fromJson(Gson.java:775)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at cmput301w15t07.TravelTracker.util.GsonIOManager.load(GsonIOManager.java:68)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at cmput301w15t07.TravelTracker.util.PersistentList.loadList(PersistentList.java:203)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at cmput301w15t07.TravelTracker.util.PersistentList.<init>(PersistentList.java:63)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at cmput301w15t07.TravelTracker.model.CacheDataSource.<init>(CacheDataSource.java:106)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at cmput301w15t07.TravelTracker.model.CacheDataSource.<init>(CacheDataSource.java:91)
04-06 09:19:04.112: E/AndroidRuntime(10083): 	at cmput301w15t07.TravelTracker.DataSourceSingleton.getDataSource(DataSourceSingleton.java:55)

I suspect this is because of the stackoverflow solution to GSONing lists of complex types.  From PersistentList line 220:
public class ArrayListType implements ParameterizedType {

		@Override
		public Type[] getActualTypeArguments() {
			return new Type[] {wrappedClass};
		}

		@Override
		public Type getOwnerType() {
			return null;
		}

		@Override
		public Type getRawType() {
			return ArrayList.class;
		}
	}

The getRawType() is fine, but hard coding the getActualTypeArguments() array may be obscuring something important.

If you want to try and debug this, uncomment the new CacheDataSource() injection line in DataSourceSingleton (line 53).
Set a breakpoint at line 106 of CacheDataSource and start stepping in.  The error occurs when GsonIOManager (line 68) tries to load the PersistentList.
Context:  GsonIOManager handles serializing and deserializing PersistentList just fine, same with all of our Document subclasses.  But a PersistentList chokes it with the stacktrace above.

I think I figured this out.  The DeletionFlag has a Document as an attribute, not a subclass of Document.  When GSON tries to deserialize, it takes that literally and tries to construct a Document, which is abstract.  That can't be instantiated.
I either need to make PersistentList take a deserialization Type for each element, or I need to maintain a deletion list for each subclass of Document so that PersistentList stays consistent.

GsonIOManager handles serializing and deserializing PersistentList just fine, same with all of our Document subclasses. But a PersistentList chokes it with the stacktrace above.

You said persistent list twice, once saying it was ok and once bad. Can you clarify?

Woops, markdown swallowed my generics because it thought they were HTML.  I'll edit, gimme a sec.

Edited.

I refactored to have multiple deletion lists in the CacheDataSource - one per type so that I could give GSON proper information about the type within the list for serialization.
A different bug, but similar.  My hunch is growing stronger that the Stackoverflow solution to parametrized types is no good for complex stuff like types parametrized by other types.

The refactor is on the branch cache-bug.  The DataSourceSingleton is already in use.
EVERY TIME IT CRASHES, EITHER CLEAR THE USER DATA ON THE EMULATOR OR GO INTO THE DDMS AND REMOVE /data/data/cmputblablabla/files/FILES BY HAND

Post-refactor, replicate by trying to delete a claim or item or tag.
GSON is complaining with better errors now, but I'm still confused because it's refusing to serialize cmput301w15t07.TravelTracker.model.Claim, which it's doing just fine in FileSystemHelper.
The new failure stacktrace follows:
04-06 11:56:15.190: E/AndroidRuntime(1803): FATAL EXCEPTION: main
04-06 11:56:15.190: E/AndroidRuntime(1803): java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: cmput301w15t07.TravelTracker.model.Claim. Forgot to register a type adapter?
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.google.gson.internal.bind.TypeAdapters$1.write(TypeAdapters.java:67)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.google.gson.internal.bind.TypeAdapters$1.write(TypeAdapters.java:61)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:99)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:219)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:96)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:60)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.google.gson.Gson.toJson(Gson.java:600)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.google.gson.Gson.toJson(Gson.java:579)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at cmput301w15t07.TravelTracker.util.GsonIOManager.save(GsonIOManager.java:97)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at cmput301w15t07.TravelTracker.util.PersistentList.saveList(PersistentList.java:212)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at cmput301w15t07.TravelTracker.util.PersistentList.add(PersistentList.java:69)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at cmput301w15t07.TravelTracker.model.CacheDataSource.deleteClaim(CacheDataSource.java:158)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at cmput301w15t07.TravelTracker.activity.ClaimInfoActivity.deleteClaim(ClaimInfoActivity.java:425)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at cmput301w15t07.TravelTracker.activity.ClaimInfoActivity$8.onClick(ClaimInfoActivity.java:407)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at android.os.Handler.dispatchMessage(Handler.java:99)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at android.os.Looper.loop(Looper.java:137)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at android.app.ActivityThread.main(ActivityThread.java:5039)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at java.lang.reflect.Method.invokeNative(Native Method)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at java.lang.reflect.Method.invoke(Method.java:511)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-06 11:56:15.190: E/AndroidRuntime(1803): 	at dalvik.system.NativeStart.main(Native Method)

I need to stop dealing with this and sleep for a while.

@kuzi117 , ^this^ is the current state of things.

This might be it... http://stackoverflow.com/a/11459691/2379240

Adding expose to everything does work. So it would seem that it's being subtly wrapped by some type and we can't see it. I guess it really does need a custom adapter.

My hunch is growing stronger that the Stackoverflow solution to parametrized types is no good for complex stuff like types parametrized by other types.

I don't think it is.. I just committed (this)[https://github.com/CMPUT301W15T07/TravelTracker/commit/d1da2c63518a470216e955d96afc907686f44ca6] which is theoretically the same as what you were constructing before. The error didn't change. It also didn't change when I put (this adapter in)[https://github.com/CMPUT301W15T07/TravelTracker/blob/cache-bug/src/cmput301w15t07/TravelTracker/model/TagTypeAdapter.java] and registered it (like this)[https://github.com/CMPUT301W15T07/TravelTracker/commit/0db1530e46060ae0f053c694aadb9a3dafac72c6].

Adding expose to everything does work. So it would seem that it's being subtly wrapped by some type and we can't see it. I guess it really does need a custom adapter.

I don't see this in the commit history.  I'd like to see it in another branch if it's recoverable.  It's cool if not.  In an earlier version I was using @Expose on all the fields I needed to include in serialization, but I found it was easier to use transient on the fields I wanted to exclude.

I just committed this which is theoretically the same as what you were constructing before.

(new TypeToken<ArrayList<T>>() {}.getType() within a class that's parameterized by T does change things, but not for the better.  Java's type erasure will confuse GSON and make it deserialize the parametrized type as a String, rather than whatever class it should be.

I never committed the expose stuff, though it's easy enough to try for yourself. Just add the excludeFieldsWithoutExposeAnnotation() and then expose on stuff you want to bring. Though I didn't see expose actually do anything.

The failure is isolated and quick to reproduce in PersistentListTest now. (on cache-bug branch).  The PersistentList<ArrayList<Claim>> serializes just fine, PersistentList<DeletionFlag<Claim>> fails with

java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: cmput301w15t07.TravelTracker.model.Claim. Forgot to register a type adapter?

FYI: @kuzi117 is writing a TypeAdapterFactory for DeletionFlag on branch cache-bug2.
Initial plan and feedback is here

I'm like 95% sure this is closed. I'll let @kdbanman close when he's sure though.


Markdown not work in vscode.window.showInformationMessage

VS Code Version: 1.54.2
OS Version: Windows_NT x64 10.0.19042

Steps to Reproduce:

Use vscode.window.showInformationMessage("test string link") to show information message
The link in message dialog not work, still show plain text

I found existing issue https://github.com/microsoft/vscode/issues/6087 and  https://github.com/microsoft/vscode/issues/20595. According to @bpasero , links should work here, but it doesn't.

Does this issue occur when all extensions are disabled?: Yes/No

Finally I found the reason, hope can help those who is also suffering from this. Markdown works for non-modal dialog instead of modal dialog. So if you want break lines, use modal, if you want markdown, use non-modal


astro liquid pooler tokenfactory

first stab at #312
for review I suggest:

diff contracts/astroport-tf-liquid-pooler/src/contract.rs against contracts/astroport-liquid-pooler/src/contract.rs (from v0.1.0 tag) to see the contract logic changes
diff local-interchaintest/src/tests/single_party_pol/single_party_pol_stride.rs against the same file on the main branch to see the e2e test adjustments

mostly just nits

All good points but I'm tempted to keep those parts of the pr as they are to have the code as close to the v0.1.0 release astro liquid pooler. @stiiifff wdyt?

proof that test pass


Email is undefined on Users dashboard

This is how I'm setting Email ($email) property: MixpanelService.mixpanel?.getPeople().set('\$email', email); and it shows correctly in the user profile section:

but not in the dashboard:

I'm closing this one for now as this should not be the SDK issue.


Add translations to message catalog

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)

Proposed changes
I added Japanese translation to the message catalog in the pull request, https://github.com/node-red/node-red/pull/3020.
To show the message in one line, I adjusted the width of some fields in the TLS config node.
Checklist

[x] I have read the contribution guidelines
[ ] For non-bugfix PRs, I have discussed this change on the forum/slack team.
[x] I have run grunt to verify the unit tests pass
[ ] I have added suitable unit tests to cover the new/changed functionality

Pull Request Test Coverage Report for Build 775

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 64.972%

Totals

Change from base Build 774:
0.0%

Covered Lines:
9914

Relevant Lines:
14682

💛  - Coveralls

I will directly submit this pull request to the repository under the Node-RED project because the previous pull request, https://github.com/node-red/node-red/pull/3020 was merged.


chore: Semantic release

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Optimize UnrealObjectRef

UnrealObjetRef carries a NetworkGUID to reference an UObject between UE clients and servers. A Fully Exported UnrealObjectRef (FER) also contains the outer object chain and serialized bunch, in order to spawn the actor. Depending on the length of the outer object chain, the size of a serialized UnrealObjectRef varies from 100 to 300 bytes.
FERs exists in both spatial and entity channel data. Whenever a connection subscribes to an entity channel, or a handover happens, FERs are sent to the interested sides, and the network traffic overhead is considerable.
To improve the network traffic, ChanneldUE should have its own framework to replace UE's SerializeNewActor. The classPath field was an attempt, but it doesn't work in some scenarios. An ideal solution would be building a type map and maintain the map distributedly. In that way, only the type key is need in the UnrealObjetRef to spawn actors in most cases.

Currently object is replicated using UnrealObjectRef, but only dynamic object is supported.
Static Class or resources also need to be supported, for example TSubclassOf in function void ClientSetHUD(TSubclassOf<AHUD> NewHUDClass) or UStaticMesh in https://github.com/metaworking/channeld-ue-plugin/issues/32.
A global map for all static objects seems a possible solution.

With the StaticGuidRegistery in v0.7.3, the UnrealObjectRef won't have to be fully exported in most cases.


Please add hipamd to default.xml

add hipamd
change http to https
remove duplicated roc-github

Please review, thank you.
resolved #1606

Thanks for the PR. I made the change that includes this PR and added another project. So close this PR.


Adds smooth scrolling

@michaelglass maybe we can add formatting checks at some point? The single quotes and the lack of space around single-line curly braces looks inconsistent.


How to edit the value of CRC field in a data frame?

Hello,
I would like to have access and to change the value of CRC sequence of a data frame before sending. Can someone please tell me where in the code is the CRC being generated (the sender), and where it is being read to verify a received frame?
Regards.

CRC verification in CAN communication process is generated by hardware and does not need to be implemented by software.

I know. For my research, I wanted to implement a different type of CRC that supports authentication as well.


Two engines : no sound at all

Hi,
I was trying to implement a cross-fade transition between two audio files.
My guess was to instanciate two engines, then fade out the first one to a volume 0, while the second one is fading in to the maximum volume.
But my engines are mutually locked.
What would be the best approach on this one?
Regards

Hi @rperney, I don't think there is a good solution for the cross-fading with this library at the moment. I wouldn't recommend implementing it on top of 2 engine instances. In theory it should work, but feels like an overkill, since engine supports continues playback. I think it would be better to implemented it on top of the output node, but it doesn't have information about how much time left for the current track (should be possible to add), so it won't be possible to implement fade out. I keen to do something about it, but I'm a bit busy this week (possibly next too). Once I have some time I will try to something about it. If you want to try to do it yourself, let me know how I can help you.
If you still want to solve it using 2 instances, I would like to ask you to send me minimal code of what is not working, I will try to debug it.

Hi Arthur,
thanks for your answer.
My approach with two engines was just an idea, and would not require big changes in the lib, whereas digging into the output node seems more complicated to me.
The bug was a deadlock on the origami lock queue, on a dispatch_sync line
Regards,


Update dependabot to also work on the separate react native project

https://github.com/dependabot/dependabot-core/issues/2824

Completed


BUG: editable install failing

Hi There, when I follow the instructions in this library's README with a pip install -e ., it fails with the following output. When I remove the -e flag (as suggested elsewhere for another library), it works. However, given I intend to contribute back to library, it would be great for me to have editable install. The versions of my Python and pip are 3.11.2 and 24 respectively.
Building wheels for collected packages: lm-eval
  Building editable for lm-eval (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building editable for lm-eval (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [31 lines of output]
      /usr/local/Cellar/python@3.11/3.11.2_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py:108: _BetaConfiguration: Support for `[tool.setuptools]` in `pyproject.toml` is still *beta*.
        warnings.warn(msg, _BetaConfiguration)
      /usr/local/Cellar/python@3.11/3.11.2_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pycodestyle.py:111: FutureWarning: Possible nested set at position 1
        EXTRANEOUS_WHITESPACE_REGEX = re.compile(r'[[({] | []}),;:]')
      running editable_wheel
      creating /private/var/folders/f3/vw4cz6js4zn8fgktmxrfmjsc0000gn/T/pip-wheel-izx3gw8f/.tmp-tqgm20aq/lm_eval.egg-info
      writing /private/var/folders/f3/vw4cz6js4zn8fgktmxrfmjsc0000gn/T/pip-wheel-izx3gw8f/.tmp-tqgm20aq/lm_eval.egg-info/PKG-INFO
      writing dependency_links to /private/var/folders/f3/vw4cz6js4zn8fgktmxrfmjsc0000gn/T/pip-wheel-izx3gw8f/.tmp-tqgm20aq/lm_eval.egg-info/dependency_links.txt
      writing entry points to /private/var/folders/f3/vw4cz6js4zn8fgktmxrfmjsc0000gn/T/pip-wheel-izx3gw8f/.tmp-tqgm20aq/lm_eval.egg-info/entry_points.txt
      writing requirements to /private/var/folders/f3/vw4cz6js4zn8fgktmxrfmjsc0000gn/T/pip-wheel-izx3gw8f/.tmp-tqgm20aq/lm_eval.egg-info/requires.txt
      writing top-level names to /private/var/folders/f3/vw4cz6js4zn8fgktmxrfmjsc0000gn/T/pip-wheel-izx3gw8f/.tmp-tqgm20aq/lm_eval.egg-info/top_level.txt
      writing manifest file '/private/var/folders/f3/vw4cz6js4zn8fgktmxrfmjsc0000gn/T/pip-wheel-izx3gw8f/.tmp-tqgm20aq/lm_eval.egg-info/SOURCES.txt'
      adding license file 'LICENSE.md'
      writing manifest file '/private/var/folders/f3/vw4cz6js4zn8fgktmxrfmjsc0000gn/T/pip-wheel-izx3gw8f/.tmp-tqgm20aq/lm_eval.egg-info/SOURCES.txt'
      creating '/private/var/folders/f3/vw4cz6js4zn8fgktmxrfmjsc0000gn/T/pip-wheel-izx3gw8f/.tmp-tqgm20aq/lm_eval-0.4.2.dist-info'
      creating /private/var/folders/f3/vw4cz6js4zn8fgktmxrfmjsc0000gn/T/pip-wheel-izx3gw8f/.tmp-tqgm20aq/lm_eval-0.4.2.dist-info/WHEEL
      Traceback (most recent call last):
        File<EMAIL_ADDRESS>line 140, in run
          self._create_wheel_file(bdist_wheel)
        File<EMAIL_ADDRESS>line 311, in _create_wheel_file
          from wheel.wheelfile import WheelFile
      ModuleNotFoundError: No module named 'wheel.wheelfile'
      error: Support for editable installs via PEP 660 was recently introduced
      in `setuptools`. If you are seeing this error, please report to:

      https://github.com/pypa/setuptools/issues

      Meanwhile you can try the legacy behavior by setting an
      environment variable and trying to install again:

      SETUPTOOLS_ENABLE_FEATURES="legacy-editable"
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building editable for lm-eval
Failed to build lm-eval
ERROR: Could not build wheels for lm-eval, which is required to install pyproject.toml-based projects

It sounds like the recommended fix solved the issue, so closing this! Thanks @LSinev for chiming in with the solution :)


[XamarinProfiler-Windows]: Accessibility: Color Contrast: MAS1.4.3: "Symbol Name" coulmn text in Call Tree Table of Call Tree tab is not having color contrast ratio of 4.5:1 in both "Allocations/Time Profiler" profiling pages

Steps to Reproduce
Scenario 1:

Follow the Pre-requisite to launch the xamarin profiler.
Select the available instruments to "Allocations" and hit "Start Profiling"button.
This will invoke "Allocations" profiling page. Navigate to "Call Tree" tab and invoke it.
Verify the color contrast ratio of "Text" under "Symbol Name" column of Call tree.
Scenario 2:
Follow the Pre-requisite to launch the xamarin profiler.
Select the available instruments to "Time Profiler" and hit "Start Profiling"button.
This will invoke "Time Profiler" profiling page.
Verify the color contrast ratio of "Text" under "Symbol Name" column of Call tree.
Note: Same issue is observed in "Samples" tab. Please refer the below steps.
Navigate to "Samples" tab and invoke it. This will invoke "Samples" tab of Time Profiler.
Verify the color contrast ratio of "Name" column text of "All Samples" table.

Pre-Requisite:

Install Xamarin Profiler.
Launch Profiler through ".mlpd" file.

Expected Behavior
Color contrast ratio should be minimum 4.5:1
Actual Behavior
Color contrast ratio is less than 4.5:1 i.e, 2.7:1 - 4.2:1
See the screenshots attached
User Impact
Low vision user will feel difficult in seeing the text
Screenshots

Environment
Microsoft Windows version: 1803(OS Build 17134.112)
Xamarin Profiler version: <IP_ADDRESS>2

Log File

Please add the following labels to this bug:
A11yMAS
Accessibility
MAS1.4.3
Xamarin-Profiler-Windows
Wipro


Type cannot be inferred from usage

NEST/Elasticsearch.Net version:
NEST 6.0.1
Elasticsearch version:
n/a
Description of the problem including expected versus actual behavior:
According to this blog post I should still be able to do this after upgrading to NEST 6.x:
client.Index(new Company { Id = 1 })
If I write this however, I get the following compile error
The type arguments for method 'IElasticClient.Index<T>(IIndexRequest<T>, CancellationToken)' cannot be inferred from the usage. Try specifying the type arguments explicitly..
Here's a minimum sample which produces the compile error:
public class MyClass
{
    public void MyMethod()
    {
        IElasticClient client = null;
        client.Index(new MyIndexedEntity());
    }
}

public class MyIndexedEntity { }

we had to change that to client.IndexDocument<T>(T doc).
On the road now so pardon the short explanation will link to another ticket explaining it later.

Short answer is fine, it's clear. :)
Shall I leave this open to track if the blog post should be updated, or shall I close this issue?

@nphmuller yes please; we'll get the blog post updated 👍

I've now updated the blog post so am now closing this issue


The reading of the current value is not correct in relation to the watts

Hello
Thank you for your work.
The reading of the current value is not correct in relation to the watts, is there any way to solve it?
Thank you

What is with L2 and L3? Which Meter you use? Does the Serial of your meter matches with the Serial shown in VenusOS Display?

L2 and L3 are not connected because my grid is single-phase. The watts are correct because I've checked them. My meter is SMA EMETER-20.GR1.

The strange thing is that when consumption is high, the value seems to match.

In your special case with only one phase it is very complex to measure such small currents and powers. Furthermore, the "wattage" shows the so named active (also named real or effective) power. And for this power is the calculation of p = u * i is wrong. In your case with pulsated power in one phase this effect is more fatal and very difficult to measure. If you have reaktive loads in your system, or the inverter is for example in so named "intermittend flow" (an that is possible with small loads) you will see such effects.

I have the inverter set to zero injection to the grid.
Thank you for your information


Fix virtio expectations

Fill in expectations for a new filters/flow_rule_dec_ttl test and fix usecases/rx_intr after changes in code.

done


Significant delay when triggering sampler or player from Midi or Mouseclick events

We are using Tone.js intensively for our platform since 2 years and consider it as a fantastic piece of work, thanx a lot for your awesome work!!
Recently we started to create latency critical modules and are facing significant delays of the Tone sampler and Tone player, when playing back a mp3/wav soundfile, versus triggering a native AudioSourceBuffer. On Chrome running on MacOS (M1 Powerbook) we measure in average a difference of 100 up to 400ms between the native AudioSourceBuffer playback and the Tone players. As this is beyond the acceptable latency for playing e.g. from a Midi Keyboard we kindly ask for some comments on that. Maybe there are methods to improve latency, any hints and suggestions highly appreciated.

Biggest difference maker is to set Tone's context.lookAhead to 0. By default Tone.js uses a 100ms lookAhead which can feel like a ton of latency. With lookAhead at 0 then in theory the latency should only be the context's baseLatency which varies depending on the context sampleRate and browser. Can also try tweaking Tone's context.updateInterval. Those are the 2 main things to look at, though there's usually room for further microoptimizations depending on your code, if you wanted to post a code example.

Hi Marcel, thanx for your quick answer and interesting hints. In the meantime we found the issue by try and error:
// This was having the "delay" of approx. 100 ms --> using Tone.now()
this.sampler.triggerAttack(note, Tone.now(), 1);
// this option works as expected (Tone.context.currentTime)
this.sampler.triggerAttack(note, Tone.context.currentTime, 1);
Nevertheless we did not find precise descriptions about the different Tone time approaches in your documentation. This would be a nice field for improvement for your great API ;-)

Yeah you're basically just bypassing the lookAhead when you do that, Tone.now() is Tone.context.currentTime + Tone.context.lookAhead. Better way would be to set lookAhead = 0 once at init, then just sampler.triggerAttack(note).
There's a wiki article about performance that mentions lookAhead, could probably use some expanding though https://github.com/Tonejs/Tone.js/wiki/Performance

But if I understand right this would change the lookAhead in general, so that we have a maybe unwanted impact on other scheduled events in Transport, right?

Not sure what kind of "unwanted impact" you are fearing; if you set the lookAhead once at startup then all subsequent timings would be the same relative to each other.

I think I have to dig into the concept of the lookAhead further ;-)
Maybee you could help me with a further problem regarding Transport that drives me crazy:

we "record" Midi events into an Array and are using Tones time to timestamp every event accordingly.
when we would like to "play" this "recording", we loop through all events and schedule all note events by using Tone.Transport.schedule, e.g. on the Tone sampler. When starting transport the playback starts super precisely, works like a charm!
 I was assuming that I can stop, pause, clear the Transport to achieve this, but this does not work. E.g. Transport stops definitely, but the scheduled events are playing back until the end of the recording. What am I doing wron here??!

Voila a code excerpt:

we record an array of events and store it in this.recorder
we perpare the playback by passing this array into the method preparePlay() which is scheduling Transport
we start playback by starting Transport

Our issue: neither Transport methods stop, cancel, clear can prevent the scheduled events from playing, or do remove events from Tones timeline after we called Tone.Transport.start().
Framework: Typescript 4.3.5, Angular 12, Tone 13.4.9.
export interface RecorderEvent {
  note: number, // frequency
  state: number, // 1, 0 -> keypress, keyrelease
  velocity: number, // midi velocity
  time: number, // Tone.Time
}
...
this.recorder =  [
  {
    "note": 65.40639132514966,
    "state": 0,
    "velocity": 0.5984251968503937,
    "time": 3.727999999999952
  },
  {
    "note":<PHONE_NUMBER>9087463,
    "state": 0,
    "velocity": 0.28346456692913385,
    "time": 4.159999999999968
  },
  {
    "note":<PHONE_NUMBER>6104043,
    "state": 0,
    "velocity": 0.5669291338582677,
    "time": 4.170666666666648
  },
...

  preparePlay() {
    console.log('prepare play....')
    console.log(this.recorder.length);
    // clean
    Tone.Transport.cancel();
    this.recorder.forEach((event: RecorderEvent) => {
      Tone.Transport.schedule(time => {
        const scheduledTime = time + event.time;
        if (event.state === 0) {
          this.sampler.triggerAttack(event.note, scheduledTime, event.velocity);
          Tone.Draw.schedule(() => {
            const midi = Tone.Frequency(event.note).toMidi();
            console.log(midi);
            this.activeKeys.set(midi, new ActiveKey(event.velocity));
          },
            scheduledTime);
        } else {
          this.sampler.triggerRelease(event.note, scheduledTime);
          Tone.Draw.schedule(() => {
            const midi = Tone.Frequency(event.note).toMidi();
            this.activeKeys.delete(midi);
          },
            scheduledTime);
        }

        if (event.time === this.recorder[this.recorder.length - 1].time) {
          Tone.Draw.schedule(() => {
            console.log('*** THE END ***');
            Tone.Transport.stop();
            this.playStatus$.next(false);
          }, time + event.time);
        }
      });
      // console.log('scheduled event id: ', id);
    });
    Tone.Transport.scheduleRepeat((time) => {
      // use the time argument to schedule a callback with Draw
      // const lastTime = this.recorder[this.recorder.length - 1].time - offsetTime;
      Tone.Draw.schedule(() => {
        // do drawing or DOM manipulation here
        console.log(time);
      }, time);
    }, "1");
  }

...

Thanx a lot in advance for your support!!

Probably a misunderstanding of where the actual event scheduling is happening, looks like you're not passing a time argument to Transport.schedule(). This defaults to immediately, as in, as soon as the Transport starts. So when you stop the Transport those sampler.triggerAttack() events have already been scheduled to fire at scheduledTime, because they were all scheduled at once on Transport.start(), and the sampler is not synced to the Transport by default, so those triggers happen independently of the Transport. I think you'll need to refactor this a bit in order to be able to stop/pause/resume the sequence if that's your aim, can look into using sampler.sync() to sync it to the Transport (probably easiest), or can use the Transport.schedule() time argument instead of passing scheduledTime to sampler.triggerAttack().

Thanks for jumping in @marcelblum
I'm going to close this since it seems like it's been resolved

Dear @tambien and @marcelblum, thanx a lot for your great project and support. Yes we kind of solved the issue based on your hints, but I clearly have to say that understanding transport with its 3 different timelines (audio context, absolute transport time and relative transport time) is really challenging. I think it would definitely help users to consolidate your documentation regarding transport and to expose the documents e.g. from your wiki on https://github.com/Tonejs/Tone.js at #Scheduling.


Typo

https://github.com/ratfactor/ziglings/blob/268e8963666723f96d8cd78ced61c6ad0c047037/exercises/040_pointers2.zig#L15
Shouldn't this be the other way around?
You can always make a const pointer to a mutable value (var), but
you cannot make a var pointer to an immutable value (const).
change to
You can always make a var pointer to an immutable value (const), but
you cannot make a const pointer to a mutable value (var).

Sorry my bad misunderstood the explination


implement std::error::Error for failure::Error

Sorry if this has been mentioned already.  It seems like it should be straightforward to do, and would ease interoperation with other crates that already expect something to impl std::error::Error.

No, it is a coherence violation to implement it.


Verbosity of log file

Is there a way not to output the full json of the document to the log file? I tried --verbose 0 and --verbose 1 but they seem to do the same here.
When I run the initial dump to Elastic, I get 10GB for the log file in matter of minutes, I wonder if it is possible?
I think it was in version 1.3
Thanks

The problem is that there's only two effective log levels for mongo-connector: non-verbose (INFO-level) and debug (DEBUG-level). The INFO level (non-verbose) is actually pretty chatty, so it'd be nice to move some of the INFO-level logging to DEBUG. I'll make a patch for this later today.
It's worth noting that mongo-connector can rotate its own log files, so you could rotate the logs every few hours/minutes if you so chose to save space. Check out logging options.

Sorry but this is a bug as doc states that 0 is ERROR, 1 is WARNING, 2 is INFO and 3 is DEBUG. But setting any nulber set verbosity to DEBUG, which is not expected.

@joe-mojo The different verbosity levels only apply to Mongo Connector >= 2.0.3. Before this, any nonzero setting for verbosity was DEBUG-level. What version are you using?

2.0.2
Didn't see 2.0.3 coming since I installed mongo-connector last week...


text-align classes missing from documentation.

Should be added to typography section, had to poke around the source code trying to see if such utilities existed.

They're bundled with the other utility classes at the moment in the documentation.


Fx a bug for fold animator with pan gesture when dismiss

Fix a bug for fold animator with pan gesture when dismiss the ViewController, it is a bug in https://github.com/ColinEberhardt/VCTransitionsLibrary as well, will do a PR to them to fix it.
It was OK for popping a ViewController, but not for dismissing a ViewController, the transition state was broken.
The fix is in
https://github.com/JakeLin/IBAnimatable/compare/bugfix/fold-animator-with-pan-gesture-when-dismiss?expand=1#diff-e3c0877d13bebebec521d0689eb955f7R97
Also fixed some minal code style issues.
@tbaranes can you have a look at this? thanks.

Seems good 👍


Signed payload is not valid when using signxml but xmlsec one is valid

I used this code to generate signature for the signing the payload. You can onsider this issue extension to #171
from xml.etree import ElementTree
import signxml

from cryptography.hazmat.primitives.serialization import pkcs12
from cryptography.hazmat.backends import default_backend

cert_bytes = open("certs/test.pfx", "rb").read()
(private_key, certificate, additional_certificates) = pkcs12.load_key_and_certificates(data=cert_bytes, password="pwdtest".encode(), backend=default_backend())
data = open("payload.xml", encoding="UTF-8").read()
root = ElementTree.fromstring(data)
signer = signxml.XMLSigner(method=signxml.methods.enveloped,
                           signature_algorithm="rsa-sha1",
                           digest_algorithm="sha1",
                           c14n_algorithm="http://www.w3.org/2001/10/xml-exc-c14n#")

signed_info = signer.sign(data=root,
                          key=private_key,
                          cert=[certificate],
                          reference_uri="#Body")
print(ElementTree.tostring(signed_info))

But the signed payload is not correct, ending up with either signature verification failed error/getting error message to check for the signature. When I used the xmlsec, it is generating in a proper way. But I have to use signxml as it does not have platform dependencies. Attached both the xml output files here.
files.zip
And the payload here
payload.txt
I see the Issuer details tag is missing in signxml generated output document and there are two Reference URI and digest method and value in xmlsec generated output but seeing only one on the signxml. How can I make the signxml to generate and verify the signature and able to successfully make SOA API invocation?
XMLSec code: Ref https://github.com/orcasgit/py-wsse/blob/ff4fea90687606af31d4b31cbdb3e753154299a4/wsse/signing.py#L19
wsse = signing.sign(envelope=envelope, keyfile=key_path, certfile=cert_path)
signing.verify(envelope=wsse.decode(), certfile=cert_path)

I would appreciate any help on this from anyone/@kislyuk

Thanks for your report. Can you clarify how you determined that the signed payload is "not valid"? Also, when I run the code that you supplied on the "payload.txt" file, I get signxml.exceptions.InvalidInput: Unable to resolve reference URI: #Body - but you must have gotten past that error, since you got signxml to produce a signature. Can you provide a complete reproduction?

@kislyuk Just change the method to signxml.methods.detached in signxml.XMLSigner. Also, we have the server(Getting the signature verification error/Please check the signature error) which validates XML with signature in it. Also signxml.XMLVerifier() cannot verifies the signed data.
from xml.etree import ElementTree
import signxml

from cryptography.hazmat.primitives.serialization import pkcs12
from cryptography.hazmat.backends import default_backend

cert_bytes = open("certs/test.pfx", "rb").read()
(private_key, certificate, additional_certificates) = pkcs12.load_key_and_certificates(data=cert_bytes, password="pwdtest".encode(), backend=default_backend())
data = open("payload.xml", encoding="UTF-8").read()
root = ElementTree.fromstring(data)
signer = signxml.XMLSigner(method=signxml.methods.detached,
                           signature_algorithm="rsa-sha1",
                           digest_algorithm="sha1",
                           c14n_algorithm="http://www.w3.org/2001/10/xml-exc-c14n#")

signed_info = signer.sign(data=root,
                          key=private_key,
                          cert=[certificate],
                          reference_uri="#Body")
print(ElementTree.tostring(signed_info))

Hi,
Good to hear from you. Updated my comment here
https://github.com/XML-Security/signxml/issues/201#issuecomment-1265126098
Thanks,
Krish
On Sat, Oct 1, 2022 at 10:59 AM Andrey Kislyuk @.***>
wrote:

Thanks for your report. Can you clarify how you determined that the signed
payload is "not valid"? Also, when I run the code that you supplied on the
"payload.txt" file, I get signxml.exceptions.InvalidInput: Unable to
resolve reference URI: #Body - but you must have gotten past that error,
since you got signxml to produce a signature. Can you provide a complete
reproduction?
—
Reply to this email directly, view it on GitHub
https://github.com/XML-Security/signxml/issues/201#issuecomment-1264250871,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG3Y7QUPZH5AG5JQNWURW2LWA7D2NANCNFSM6AAAAAAQYCB5JM
.
You are receiving this because you authored the thread.Message ID:
@.***>


Technology cost data

Changed costs assumptions for all renewables, batteries and so on based on the WP2-cost-data for 2050 in Nofossil alternative

Moved to cost-variation alternative


Add Expo example

@jferrettiboke thanks for this PR! We had one of these in the works for another project and just merged that in as part of https://github.com/vercel/turborepo/pull/1486 - but if you want to check that one out and make any improvements / suggestions that would be awesome.
Thanks for the work.


drivers: clock: rcar: cleanup and harmonization of rcar clock drivers

Remove old unused defines from common header
Use clang-format to apply coding guideline to r8a7795 driver
Harmonize r8a7795 driver with r8a779f0 driver based on edit done following comments on #56043.
Signed-off-by: Aymeric Aillet<EMAIL_ADDRESS>

I have removed the "trivial" label from this PR as I don't think a +33/−63 code line change falls in this category.

@lorc please take a quick look


package-lock.json version not updated correctly

Newer versions of npm require updating package-lock.json in two places, like this:
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "my-pkg",
-  "version": "0.3.1",
+  "version": "0.3.2",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "my-pkg",
-      "version": "0.3.1",
+      "version": "0.3.2",
       "license": "Apache-2.0",
       "dependencies": {

however, adding package-lock.json to the version-file property only results in the version being updated on one line:
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "my-pkg",
-  "version": "0.3.1",
+  "version": "0.3.2",
   "lockfileVersion": 2,

What would be better is if there was a pre-commit hook that runs a bash command (npm i in this case) to update the package-lock.json. It looks like the pre-commit hook only accept a js script right now.

You could ofc inside that pre-commit hook script run that command

I am interested in this behavior too, could you elaborate on what you mean by "ofc" ?

That you can do anything you want inside the pre-commit script, so if you want to run a command you can do that there.

@sdankel setting the following as a pre-commit script is working fine for me.
`const { execSync } = require('child_process')
const path = require('path')
exports.preCommit = (props) => {
const command = 'HUSKY=0 npm i'
try {
console.log(Bumping package-lock.json to ${props.version})
const stdout = execSync(command, { cwd: path.join(__dirname, '../..') })
console.log(stdout.toString())
} catch (err) {
console.log(${command} failed, error: ${err.message})
process.exit(1)
}
}`

@sdankel setting the following as a pre-commit script is working fine for me. Obviously change the cwd line to suit your needs. I have it as pre-commit: .github/workflows/version-pre-commit.js
const { execSync } = require('child_process')
const path = require('path')

exports.preCommit = (props) => {
    const command = 'HUSKY=0 npm i'
    try {
        console.log(`Bumping package-lock.json to ${props.version} by execing: npm i in ${path.join(__dirname, '../..')}`)
        const stdout = execSync(command, { cwd: path.join(__dirname, '../..') })
        console.log(stdout.toString())
    } catch (err) {
        console.log(`${command} failed, error: ${err.message}`)
        process.exit(1)
    }
}

Where do you install child-process for this script? Does the script have to have a package.json?
In my opinion, it would be better if the script could be written in bash and executed.

child_process is something from node it self, no need to install


fix handling of long long

lots of compiler warnings currently against mapnik v2.2.0 due to poor handling of the new 64bit long long type of mapnik::value_integer. This needs work, but was over my head at the time given my lack of ruby/rice experience. Hoping @elliotlaster can take a look.

still seeing errors for v.2.2.0-pre

@timwaters - I'm not actively maintaining Ruby-Mapnik, but I'm happy to accept pull requests or to grant you commit access to make fixes. Let me know if you'd be keen with either. /cc @gravitystorm.

@springmeyer thanks - my C++  / Rice knowledge is almost as non existent as my knowledge of the Mapnik library :smile:  But I can hack away and it might help others if they search for similar issues.


Review and edit django-allauth templates

The project comes with django-allauth templates by default. Most of the time they look somewhat okay, but are inconsistent.
What to look for:

Margins: Is this correct accross all templates?
Widths: Some templates are half size, some are full size
Wording

Sign Up, Signup, Register, Log In, Login, e-Mail, Email, eMail-Address => Make one the default.
Check for spelling, grammar

I'm working on this, should the templates be brought in sync with upstream? There a couple of changes.

@kappataumu Absolutely they should be made current with upstream, albeit formatted for Bootstrap 4.
--@pydanny

Did this in a bit of a hurry, if there are any glaring omissions hit me up.


Adding roles that require schema/operation file failure.

I have opened a question in Stack overflow for this issue: https://stackoverflow.com/questions/70943271/graphql-eslint-eslint-plugin-parseroptions-schema-error

Hi @RoyLeibo!
I'm not adding a lot here but I'm just labelling it according to our new Contribution Guide and issue flow.
It looks like already got it into stage 0! thank you for that!
Now in order to advance to stage 1 we'll need a running reproduction.
After that maybe a failing test to advance it through the stages.
Thank you and sorry that this comment is not a complete solution (yet).

@B2o5T thank you for your answer.
As specified in stage 1, I have opened a repository with the simplest project possible to reproduce the error.
I have specified the issue in the README.md
Thanks!

Hi @RoyLeibo, some rules of graphql-eslint expect to receive a full schema (not partial like in your repo).
It's doesn't matter how you will provide it either via graphql file, json file or via endpoint URL.

@B2o5T Thank you for your answer!
I understood that the schemas are required, I was just unable to provide the path to the schemas.. no matter what have I tried. can you show me the code that accomplishes that?

@RoyLeibo You don't provide your schema for graphql-eslint.
Please read the following instructions that described in readme.
When I provided your partial schema
{
  "files": ["*.graphql"],
  "excludedFiles": ["*.ts, *.tsx", "*.generated.*"],
  "parser": "@graphql-eslint/eslint-plugin",
  "plugins": ["@graphql-eslint"],
+ "parserOptions": {
+   "schema": "./src/graphql/application/application.schema.graphql"
+ },

I received the following output
error [graphql-eslint] Error while loading schema
 Error: Cannot extend type "Query" because it is not defined.

Cannot extend type "Mutation" because it is not defined.

Unknown directive "@key".

Unknown type "Query".

Unknown type "Mutation".

Why this happens I described in the last comment

@B2o5T Thank you so much!
Last question, where did you describe how to solve the new error that pops up following the schema path is provided?

some rules of graphql-eslint expect to receive a full schema (not partial like in your repo).


Setting max_connect_errors is meaningless

What
MOCO enables skip_name_resolve by default.
https://github.com/cybozu-go/moco/blob/d4afdf307ad0355215e46111e23d5660e4ae15d7/pkg/mycnf/generator.go#L104
The max_connect_errors option will have no effect because its behavior depends on the host cache, which is disabled by skip_name_resolve.
https://github.com/cybozu-go/moco/blob/d4afdf307ad0355215e46111e23d5660e4ae15d7/pkg/mycnf/generator.go#L31
How
Remove max_connect_errors setting as it is meaningless.
Checklist

[ ] Finish implementation of the issue
[ ] Test all functions
[ ] Have enough logs to trace activities
[ ] Notify developers of necessary actions

Thank you. merged.


Thoughts on multiprocessing (and networking)

Thoughts on multiprocessing (and networking)
I'm creating this issue to collect some thoughts on multiprocessing in general, our options and their pros and cons. Before I commit too much more time to our multiprocessing code, I want to be sure we’re implementing the right solution.
I’ve split this post into several chapters:

The problem with using a single process for everything
The airo-mono philosophy
Options for multiprocessing
Conclusion and Action Points

The problem with using a single process for everything
For some use cases, e.g. retrieving images & point clouds at full resolution and fps (possibly from multiple cameras), servoing at high frequency, recording videos, logging and saving data, it’s very difficult to keep everything running smoothly in a single (Python) process.
Concretely: it's very hard to record videos of your experiments with the same camera that you are using for making robot control decisions, which is a shame.
The airo-mono philosophy
Airo-mono has the (implicit) motto: "Keep simple things simple", which has made it a great tool for research and prototyping. In practice, this means keeping everything pip installable (except maybe camera SDKs) and providing the functionality as Python functions, or Python classes with intuitive and standardized interfaces (and a few CLI tools and simple OpenCV “apps”).
The (ideal) standard airo-mono-based project getting-started workflow would be like this:
pip install airo-camera-toolkit
pip install airo-robots

from airo_camera_toolkit import Zed2i
from airo_robots import URRtde

camera = Zed2i()
robot = URRtde()

image = camera.get_rgb_image()
grasp_pose = select_grasp_pose(image)  # example: user provides grasp pose
robot.moveL(grasp_pose).wait()

I think we all agree this has been a great success, and is not something we want to compromise on. So that is important to keep in mind when considering the multiprocess options.
Options for multiprocessing
Multiprocessing (or process-based parallelism) has been around for a long time, and a central topic is inter-process communication. I believe our main options are:

Shared memory
CycloneDDS
ROS2

In the following subsections, I will explain each of these briefly and the pros/cons I believe they have.
Shared memory
Almost all operating systems support the concept of shared memory. Shared memory is simply a part of main memory (RAM) where multiple processes can write/read to (normally, a process has its private part of main memory). Reading and writing to shared memory can thus be very fast.
Python has a built-in package multiprocessing that makes it easy to create blocks of shared memory. You just provide a name and an amount of bytes. Additionally, it integrates with numpy pretty well (however you have to communicate the shape of numpy arrays to receivers yourself over shared memory, which is a bit clunky but it works). This is what I’ve currently used in the MultiprocessRGBPublisher classes.
Pros:

Easy install: no additional installation required as it’s built-in
Fast: we write directly to shared memory with almost no overhead, so this is probably the method with the lowest latency and highest throughput
Flexible: we have full access and can write whatever data/message we want

Cons:

Synchronization: we are responsible for synchronization between writer and reader. For example, I also write a timestamp to shared memory that the reader checks periodically to detect new data.
Data shape: we are responsible for communicating data/array shape (and dtype) to receivers, either by hardcoding or also passing it over shared memory. Maybe using pickle could make this easier.
Clean up: shared memory is not owned by any single process, so even when the process that created it dies, it remains until the PC is rebooted. I’ve had issues where I want to restart my publisher process (e.g. with a larger camera resolution), but the (too small) shared memory files from my previous publisher were not properly cleaned up. This is fixable, but again something we are responsible for.
Single machine: we can only use this to pass data between processes on the same machine that share main memory physically.

The first three cons come down to we have to manage the shared memory ourselves (and maintain that code).
Cyclone DDS

I consider only Cyclone DDS here because as far as I know, it’s the only open-source pip installable DDS ().

DDS is short for Data Distribution Service, and it is a form of inter-process communication. DDS generally also supports passing data between computers connected via a network. For this reason, they often pass data with the IP. CycloneDDS uses UDP by default but can also be configured to use TCP. However, when operating in this mode, throughput is much lower than over shared memory (and likely can’t handle our full camera data streams). To fix this, CycloneDDS also has support for using shared memory, but I’m unsure how easy this is to install and configure.
CycloneDDS Python support seems pretty nice. Defining messages seems to be not much harder than defining a dataclass, see the Github readme for an example (Chatter).
Questions:

Is shared memory support included in the pip install or do we need to build from source?
Pros:
Management: clean up, data shape, types, synchronization etc. are managed by CycloneDSS
Network communication
Pip installable: the base version is pip-installable, but unsure what is included

Python / C++ interoperability
Cons:

Custom messages: Still need to define many messages, might be better to use ROS messages

To be honest, I find that CycloneDDS fall into a somewhat undesirable gray zone between doing it ourselves and using ROS2. CycloneDDS is one of the middleware options for ROS2, so maybe if we go this route, we should just bite the bullet use ROS2. It seems silly to me to define custom CycloneDDS messages instead of using many of the existing ROS2 message types.
ROS2
The “old” ROS was in some sense similar to a custom DDS. However, with ROS2 they chose not to implement the communication middleware themselves anymore, but instead rely on several different DDS options. So basically ROS2 has message types that are not specific to any DDS, and it converts these to the message types of the specific DDSs.
There are several reasons we have currently opted out of the ROS2 ecosystem.

The first is that system-wide installation seems to be the most supported option (and a sudo apt upgrade can break everyone’s projects). Dependency management for ROS packages in general can also be difficult.
The second problem is that it doesn’t keep simple things simple. Even for creating a simple script, you need a workspace, package, node, etc. that you have to build with Colcon. Then you have to make sure everything you need is launched.

Problem 1 might be solvable, e.g. by running ROS2 in a Docker container. The caveat is that performance will likely not be great. We would probably need to configure the ROS2 DDS to use shared memory, and then also mount the host's shared memory into the Docker container, but that seems doable.
Correction: I’ve just realized that running ROS2 in a Docker container does not solve our problem, as it would require moving our airo-mono Python scripts into the container as well. A better solution might be to explore Robostack, which is a young project that allows installing ROS into conda environments.
Problem 2 is mostly a “dev problem”. If problem 1 can be solved, airo-mono users don’t even need to be aware that ROS2 is being used. For example, an airo-mono user could create a Zed2i(multiprocess=True), which could behind the scenes start a docker container, and run a publisher/receiver that uses the zed_ros_wrapper. Additionally, this could be completely opt-in, e.g. we could raise a RunTimeError if a user enables multiprocess without having Docker installed.
Pros:

Standard message types
Network communication
Python / C++ interoperability
Saving messages to disk
Less reinventing the wheel: opens door to using more ROS2 packages?
Conda installation: if RobotStack works

Cons:

Feasibility: I’m not sure it is possible to use non-system-wide ROS and keep running our Python scripts simply on the host machine (i.e. not in a Docker container).
Experimental: RoboStack is still a very young project and will likely still have issues.
Building: even if we use Robostack, can we (devs) build the required ROS nodes/packages beforehand so that airo-mono users don’t have to?

Conclusion and Action Points
In conclusion, I believe long-term the best solution would be to revisit ROS2, especially if we get it working within conda through RoboStack (paper). However, for the time being, our multiprocessing-based code works well for me and allows me to record videos of my data collection, which is my primary use case for wanting multiprocessing.
Action Points:

Try RoboStack installation
Check ROS2 performance (e.g. can we publish/receive Zed2i at max resolution/fps)
Investigate whether we can prebuild ROS packages for airo-mono users

I did some quick testing and the ROS installation through RoboStack went great. Took <5 min and there were no issues, rviz2 worked and the "topic" examples in ros2 examples also worked.
Not all ROS packages are currently supported in RoboStack's conda packages, notably moveit and zed_ros_wraper are missing, but the realsense packages are available. In total 613/1441 packages are supported, I assume they only count packages listed on the ros index.
Given that the installation process seems to be very smooth, the most important remaining issue is performance. The DDS that is provided/default is Fast-DDS. However, it seems to be using UDP for communication (seen in Fast-DDS monitor), even for two processes running on the same computer. This is also probably the reason why I can't publish more than about 1M points smoothly at 10 Hz. Which is about 160 MB/s (each point is 16 bytes in the example). For the full-resolution Zed2i point cloud at 15 fps, we need about 500 MB/s, so it's still quite far off.
Luckily Fast-DDS supports shared memory transport. I hope it's not too difficult to enable that for ROS2. Here are two sources I'm looking into:

https://github.com/eProsima/Fast-DDS/discussions/2550
https://docs.ros.org/en/rolling/Tutorials/Advanced/FastDDS-Configuration.html

Enabling shared memory seems fairly simple, I first created this XML file:
<?xml version="1.0" encoding="UTF-8" ?>
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">

<!-- Default publisher profile -->
<publisher profile_name="default publisher profile" is_default_profile="true">
    <qos>
    <data_sharing>
        <kind>AUTOMATIC</kind>
    </data_sharing>
    </qos>
    <historyMemoryPolicy>PREALLOCATED_WITH_REALLOC</historyMemoryPolicy>
</publisher>

<!-- Default subscription profile -->
<subscriber profile_name="default subscription profile" is_default_profile="true">
    <qos>
    <data_sharing>
        <kind>AUTOMATIC</kind>
    </data_sharing>
    </qos>
    <historyMemoryPolicy>PREALLOCATED_WITH_REALLOC</historyMemoryPolicy>
</subscriber>
</profiles>

And then set these environment variables:
export RMW_FASTRTPS_USE_QOS_FROM_XML=1
export FASTRTPS_DEFAULT_PROFILES_FILE=/home/idlab185/ros2_examples/rclpy/topics/pointcloud_publisher/examples_rclpy_pointcloud_publisher/fastdds_profile.xml

However this did not seem to use shared memory. So I tried forcing it by changing AUTOMATIC to ON. That led to this error:
[DATA_WRITER Error] Data sharing cannot be used with unbounded data types -> Function check_datasharing_compatible

The ROS message my node is trying to publish is:
from sensor_msgs.msg import PointCloud2

It seems like ROS is thus publishing that as an unbounded Fast-DDS data type. I hope that can be configured, or that we can define custom ROS messages that are bounded.

The docs in rmw_cyclonedds acknowledge this issue as well:

To actually use Shared Memory the talker/listener example needs to be slightly rewritten to use a fixed size data type such as an unsigned integer. Adapting the publisher and subscription to use messages of type std_msgs::msg::Uint32 instead leads to an example which uses Shared Memory to transport the data.

So as far as I know it's a known ROS2 limitation that most  of the messages (those with unbounded types) in common_interfaces cannot at the moment be passed over shared memory. However, the fix seems pretty straightforward. We make copies of the messages we need and add an upper bound to the amount of elements.
It's a bit of a pity that we can't make use of the standard interfaces (for now and if we need high performance), and I hope we can still visualize our customized (bounded) point cloud messages in rviz2 etc.

After reading this comment I'm afraid that making the types bounded is not sufficient, as ROS still also uses std::vector for these, which means DDSs probably won't be able to pass them over shared memory. So the constraint is even more restrictive: we need to use fixed size data types.
What this means in practice is that we will need custom messages for each camera resolution we want to be able to pass over shared memory with ROS2, e.g:

Image_2208x1242.msg
Image_1920x1080.msg
...
References:
sensor_msgs/Image.msg

huh, I didn't know that. A little annoying we would need to create different messages for each type, but I can live with it.
What is the throughput with shared memory that you can get with FastDDS?
And for the network communication, did you tune the configuration (best effort,max throughput?)

Shared memory is RAM memory, so theoretically we could get up to ~40 GB/s on Gorilla. I assume the DDS implementations are quite optimized and won't add too much overhead for large arrays (e.g. images). However we still have to test this in practice and see it we can get this configured.
For the network communication I didn't change any of the default ROS2 or FastDDS settings. A very rough estimate for the throughput I got with UDP was 160 MB/s. For CycloneDDS there is some tuning adivce in this ROS2 How-to guide. For FastDDS (formerly Fast RTPS) I haven't found instructions. Another thing to check is whether we need to explicitly configure the usage of the "loopback interface" when transferring data between processes on the same host. Maybe this is enabled when we set the ROS_LOCALHOST_ONLY environment variable.

Concretely what I'm proposing:

We want to keep our simple camera API e.g. that MultiprocessRGBReceiver behaves just like a  regular Zed2i with camera.get_rgb_image()
However, we would like not to have to manage the shared memory ourselves (see MultiprocessRGbPublisher). So we would like to replace e.g. the memory copies in our run() function with publish(ros_message)

We can start from this ros2 example: pointcloud_publisher.py
I would create a airo-ros2 sister repo for this and that will replace the multiprocess subpackage of airo-camera-toolkit. In the sister repo we should also document our recommended ROS2 installation method, which is in conda through RoboStack. (However, for the MultiprocessRGBPublisher it should not matter how ROS2 is installed, we just need to be able to import rclpy)

Thanks! Let's evaluate this on (1) complexity for end-user and developers and (2) throughput performance.

I may have an easy to install and use alternative for RoboStack (which, unlike Victor-Louis' experience above, I got very annoyed with during the installation process).
I was planning to benchmark a couple of libraries & frameworks for IPC, but after 0MQ worked pretty much out of the box, I will stop here for now and continue to investigate this instead.
0MQ is pip installable (pip install pyzmq) and supports IPC over shared memory (or TCP, or some other protocols, as desired) with a socket-like interface.
The code (below) supports publishing RGB images, depth images, and colored point clouds from one process and subscribing from another. Since the publishing process can be launched as a child process, the code is as easy to use as Victor-Louis' current solution in airo-camera-toolkit.
So far, it looks like I can achieve a throughput of about 600MBps. There's no need to manage shared memory ourselves, since 0MQ does it all for free. Though we do still need to handle serialization ourselves. As long as you just send NumPy arrays, it's easy to do (just use np.load and np.save with a byte array as "file"). Strings are trivial to send, and arbitrary Python objects can be automatically pickled (with a performance overhead, so don't do this for things like point clouds).
The code itself is not very complex either: it's only about 100 lines for published and subscriber. See https://gist.github.com/m-decoster/2eea84ad5fb4d364724af54aca70a1d4
To be continued

thanks for digging into this @m-decoster!
I'm dumping a few links that were on my ' to read' list on this topic:

https://www.dre.vanderbilt.edu/~gokhale/WWW/papers/M4IoT2020.pdf
https://www.eprosima.com/index.php/resources-all/performance/eprosima-fast-dds-performance

Looking forward to your findings!

Update: without depth images I get a throughput of 1261MB/s which is sufficient to send over point clouds and RGB images at 15 FPS! Possibly this line is the culprit causing get_depth_image to slow things down

Ah I think @Victorlouisdg  had also identified this line as a huge performance hit.
We since have some tooling to benchmark the code here.
I'm surprised that this line is still in the main branch though, maybe @Victorlouisdg remembers what we decided to do

Be sure to check out my last comment here about the multiprocess branch. The branch contains the bug fixes and performance improvements I needed for the Cloth Competition. It worked perfectly for the entire competition (many hours of stress testing), allowing me to pass all data from a single ZED2i over shared memory at 2K and 15 fps, while also recording the video of the left RGB view. So apart from some code quality checks, I believe it can just be merged into main. (I see this as our final attempt at managing shared memory ourselves.)
Then for the future, I agree we should look to outsource our multiprocess communication. The speeds of ZeroMQ seem promising, and it seems like you can define data shape/size at runtime (as opposed to compile-time for ros2). So it's definitely worth considering. However, I'm honestly still a fan of exploring the ros2 option first, because it is more standard in the robotics community. As a lab, I think we could save a lot of time if we embraced ros (e.g. also for schunk drivers and navigation), instead of avoiding it at all costs.