DD Agent does not retry resource tags collection for containers on ECS

Hi,
We have a problem with Datadog StatsD metrics missing tags when a new ECS task or instance is started. This happens randomly with less than 1% of metrics. We run our services in containers in AWS ECS, with each Container Instance (i.e. EC2 instance) having 1 datadog agent as a daemon task. Containers send StatsD metrics through a socket to the datadog agent. The datadog agent is configured to collect AWS tags of the tasks and EC2 instances (DD_ECS_COLLECT_RESOURCE_TAGS_EC2).
it looks like when datadog agent starts it sometimes doesn't collect tags of AWS resources such as EC2 instances and ECS tasks. This happens rarely (<1% of the time) and unpredictably and persists until the agent is restarted.
There is a corresponding Datadog support ticket (#402133). I'm creating this GH issue to provide some more technical details. I've done a lot of experiments and checked the source code of the datadog agent and here is the explanation of what is going wrong and why we lose tags.
Tags caching
First, I would like to clarify the Datadog agent behaviour. When a new container starts on the host the agent tries to get tags for this container entity. If it succeeds the tags for this container are cached in memory and never fetched again. If it fails it will retry to fetch tags later until it succeeds. Here is the corresponding source code: https://github.com/DataDog/datadog-agent/blob/666c775b3b0b408bc8ba4593f420fd526cd841a1/pkg/tagger/tagger.go#L234-L280
The caching part is crucial here, please correct me if I'm wrong.
How ECS tags get fetched
Let's dig deep into how the ECS tags get fetched for a single container entity. The entry point is ECSCollector.Fetch method: https://github.com/DataDog/datadog-agent/blob/666c775b3b0b408bc8ba4593f420fd526cd841a1/pkg/tagger/collectors/ecs_main.go#L75
What it does:

Calls the /v1/tasks endpoint on the ECS agent running on the underlying host to get a list of tasks and their containers running on the host.
Checks whether the setting to collect resource tags ecs_collect_resource_tags_ec2 is enabled and the metadata endpoint in ECS exposes resource tags: https://github.com/DataDog/datadog-agent/blob/666c775b3b0b408bc8ba4593f420fd526cd841a1/pkg/tagger/collectors/ecs_main.go#L88
Parses the response got in 1. and looks up the task and the target container. Creates a list of tags from this data, e.g. task_name, ecs_container_name, etc. https://github.com/DataDog/datadog-agent/blob/666c775b3b0b408bc8ba4593f420fd526cd841a1/pkg/tagger/collectors/ecs_extract.go#L19
If the collection of resource tags is configured and supported, calls additional handler addTagsForContainer: https://github.com/DataDog/datadog-agent/blob/666c775b3b0b408bc8ba4593f420fd526cd841a1/pkg/tagger/collectors/ecs_main.go#L116-L124 to collect tags set on the ECS task and instance using the /v3/<uuid>/taskWithTags endpoint on the ECS agent. Then adds the received tags to the resulting list of tags.
If addTagsForContainer in 4. fails to get tags from ECS metadata endpoint, only logs a warning "Unable to get resource tags for container..." but does not return any errors: https://github.com/DataDog/datadog-agent/blob/666c775b3b0b408bc8ba4593f420fd526cd841a1/pkg/tagger/collectors/ecs_main.go#L118-L121
Returns the resulting list of tags.

Problems

The check whether the metadata endpoint in ECS exposes resource tags https://github.com/DataDog/datadog-agent/blob/666c775b3b0b408bc8ba4593f420fd526cd841a1/pkg/util/ecs/detection.go#L83-L88 can sometimes return false. This is possible just because it calls the v3/<uuid>/taskWithTags endpoint on the ECS agent which can fail with Client.Timeout. Note that at the moment the v1 and v3 client timeouts are 0.5 seconds and they are not configurable. This indeed sometimes happens in our case, especially on massive redeployments of all our ECS services or on datadog-agent restart. Apparently, the datadog agent tries to collect tags for all containers started/running on the host at once and this creates a sufficient load on the ECS agent (that serves the ECS metadata endpoints) to not being able to respond to each request in 0.5s. Note that the ECS agent in order to reply on /taskWithTags need to send at least 2 API calls to ECS API to get tags for the container instance and for the task, see: https://github.com/aws/amazon-ecs-agent/blob/3776bee911c2267dedce46a9d2a17007f0bd73ae/agent/handlers/v2/response.go#L143-L163.
The logic of HasEC2ResourceTags() check is such that if it returned false at least once, the result is cached indefinitely: https://github.com/DataDog/datadog-agent/blob/666c775b3b0b408bc8ba4593f420fd526cd841a1/pkg/util/ecs/detection.go#L138
This means that after it fails once all metrics for all new containers on the host will be missing ECS tags because addTagsForContainer won't be called, see 4. This is obviously very bad.

The fix prepared by the Datadog engineering team for us partially resolves this problem: https://github.com/DataDog/datadog-agent/compare/7.23.x...7.23-ecs-ec2-tags-expiry. In case of failure the check result will be cached for 5 minutes meaning that all new containers will be missing ECS tags for only 5 minutes given that the next check in 5 minutes passes. This is better than it was before but still not ideal.

Another problem is item 5. If addTagsForContainer in 4. fails to get tags for a particular container from the ECS metadata endpoint (ECS agent running on the underlying host), e.g. due to client timeout, only the generic tags got in 3. are used and cached for the container. The agent will never retry to get ECS tags for that container again. We can see a lot of related logs confirming this behaviour:
(pkg/tagger/collectors/ecs_main.go:124 in addTagsForContainer) | Unable to get resource tags for container 8bd7b34e144be4f1793e49914ad38066260bb0108af9341d70036e9eecc00dd5: failed to get task with tags from metadata v3 API: Get "[http://<IP_ADDRESS>/v3/645db862-98f2-4116-b342-564414e09994/taskWithTags](http://<IP_ADDRESS>/v3/645db862-98f2-4116-b342-564414e09994/taskWithTags)": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

I think this behavior is wrong. If the user configured collection of resource logs by setting DD_ECS_COLLECT_RESOURCE_TAGS_EC2, the agent should collect them no matter what. If it fails it should retry later until succeeds.

Workaround
I've implemented a few fixes/workarounds for both of these problems in my branch. You can see the changes here: https://github.com/psviderski/datadog-agent/compare/7.23.x..pavel/7.23.1-ecs-tags-pavel-fix. They are pretty simple:

Made the HasEC2ResourceTags check to always pass without calling /taskWithTags as I'm sure that the metadata endpoint in our ECS clusters exposes resource tags.
Increased the default timeouts for v1 and v3 ECS clients 0.5s → 5s.
Made the addTagsForContainer handler that collects tags for containers propagate an error if it fails to get tags from the ECS metadata endpoint. This error makes the ECSCollector.Fetch method to fail which forces the agent to not cache the incomplete tags for a container and retry tags collection later until it succeeds.

1 addresses the first problem. 2 and 3 address the second problem.
We have been running the datadog agent built from my branch for several days in our dev cluster and it seems to solve the issue with missing tags. We plan to test it in a bigger production cluster next week.
My change doesn't pretend to be merged to the upstream repo as is. I hope it can help you implement proper fixes for the problems I pointed out. Please let me know if you don't agree with something or need any additional information. I'm happy to raise a PR if you are happy with some of my changes or can tell me what to change.

Hey @psviderski
Thank you for opening this issue with all these details. We're currently working on it and we will provide updates directly in the ticket if that's okay with you.

Hi @psviderski, thank you for such a detailed investigation and the PR. Let me hash out some ideas with my team based on your suggestions. Will get back to you shortly. We may have a couple of follow-up questions in the support ticket.

Hi @psviderski a couple of clarifications on the investigation and the PR:
a) We can possibly make the ECS api client timeout configurable, I am curious to hear if just increasing the timeout in combination with the changes from 7.23-ecs-ec2-tags-expiry solves the problem in your environment.
b) On the tags expiry logic:

When a new container starts on the host the agent tries to get tags for this container entity. If it succeeds the tags for this container are cached in memory and never fetched again.
We do refresh tags again when they expire in the ECSCollector, this is driven by the calls to the collector, so one potential issue is with a steady state when there aren't any new containers created and their tags are cached, since ECSCollector is a fetch only one, we would not be triggering this expiry. It is likely that's what you are seeing.
c) Adding retry logic around HasEC2ResourceTags - it probably makes sense to move it to be inside the initialization of ECSCollector since it will never change, but we cannot get rid of this check entirely since we have to support older ECS agent version.
d) Regarding the change to return the error here, this affects the logic for updating tags on expiry. However we are currently discussing another option where we can report a TaggerInfo (with incomplete tags due to failure to fetch resource tags) but skip caching it in the tag store.

@xornivore Thank you for getting back to me.
a)

We can possibly make the ECS api client timeout configurable, I am curious to hear if just increasing the timeout in combination with the changes from 7.23-ecs-ec2-tags-expiry solves the problem in your environment.
I doubt that it will fully resolve the issue as we are still getting the following logs on our custom datadog agent version after increasing the timeout to 5s:

(pkg/tagger/collectors/ecs_main.go:124 in addTagsForContainer) | Unable to get resource tags for container 8bd7b34e144be4f1793e49914ad38066260bb0108af9341d70036e9eecc00dd5: failed to get task with tags from metadata v3 API: Get "[http://<IP_ADDRESS>/v3/645db862-98f2-4116-b342-564414e09994/taskWithTags](http://<IP_ADDRESS>/v3/645db862-98f2-4116-b342-564414e09994/taskWithTags)": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

This means that there will be containers with missing tags for at least 5 minutes given the next attempt to invalidate the cache and fetch tags is triggered and it succeeds. I think proper retries at the upper level still need to be implemented to not cache incomplete data.
b) Thanks for clarifying the behaviour of the ECSCollector cache.
c) Agreed that it makes sense to do this check only once on the collector initialization.
d)

Regarding the change to return the error here, this affects the logic for updating tags on expiry.

Can you please clarify how it affects specifically, what will happen if Fetch returns an error propagated from the addTagsForContainer handler? Isn't this essentially a reset to the initial state when a container has just started?

However we are currently discussing another option where we can report a TaggerInfo (with incomplete tags due to failure to fetch resource tags) but skip caching it in the tag store.

This sounds interesting 👍

Hi @psviderski , I apologize it too a while to get back to you on this.
Short term, we have the following two changes available in Datadog Agent 7.25:
https://github.com/DataDog/datadog-agent/pull/6865
https://github.com/DataDog/datadog-agent/pull/6828
While understandably it won't completely resolve the problem it should minimize these issues.
Regarding the ECS agent serving requests with 5s latency - I would recommend investigating this issue on the AWS.
Regarding c) unfortunately this becomes problematic with live updates of ECS Agent, if it gets updated and restarts and we store this property indefinitely and the agent will not be able to leverage the new endpoints.
Longer term we plan to investigate using ECS container metadata files instead of ECS Agent metadata API to overcome some of these issues. It is quite early to say when we can provide a solution using this approach but I will update this issue here when we do.

FYI, AWS released v4/taskWithTags endpoint that fixed an issue with returning an error when ecs agent fails to fetch tags from ECS API: https://github.com/aws/amazon-ecs-agent/issues/2728#issuecomment-767693723. This is not directly related to this issue but might be considered for longer-term changes/refactoring.
@xornivore Is there any chance we can incorporate this patch into the upstream that forces the DD agent to retry fetching tags if it fails?
https://github.com/psviderski/datadog-agent/commit/0e48b04685161a09baf416845d59078e480c3cd1#diff-90c61af6df3468a7868aec7344837c926185a94f02b5db0fa7ad0fc0e888791cR19-R48
We still quite regularly see the following logs:
PROCESS | WARN | (pkg/tagger/collectors/ecs_main.go:122 in addTagsForContainer) | Unable to get resource tags for container 527e8e37a77c808ec1517bcf8432d1b7760d412a021e6535a1d8906d1b637b73: failed to get task with tags from metadata v3 API: Get "http://<IP_ADDRESS>/v3/30f1da32-b417-4c5d-b175-4099f796b9c0/taskWithTags": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

Hello @psviderski ,
Thank you for pinging us on this issue with the results of your investigations.
Unfortunately, we don't have yet implement the client to support the AWS API v4.
About the patch, I think I got the idea, But we should be careful when it returns an error here because it will block the creation/update of the others tags. I would prefer that it keeps a list of errors that appended during the for loop, and at the end of the function if the list of errors is not empty it returns an error.
I can create a card in our backlog to implement the fix that I describe based on your patch. Or you can open a PR if you would like.
WDYT?

This sounds good to me however I didn't dive deep into the codebase so I don't have the full context to well understand the consequences of a particular change. I'd be very happy if you can implement it properly.

Hi @clamoriniere, it seems that the fix provided by @juliogreff leads to another problem that causes sever tag loss. We already had this problem and did our own investigation, please take a look at this issue https://github.com/DataDog/datadog-agent/issues/8341


westminster repository is not available

Good day,
Was westminster repository moved or made private?
It is currently inaccessible.
$ git clone https://github.com/calico/westminster.git Cloning into 'westminster'... remote: Repository not found. fatal: repository 'https://github.com/calico/westminster.git/' not found
Best,

We had to wait for a quick internal review before releasing. It's there now.


perf: upgrade with proto3 and reworked network packets

The main thing I reworked is to use the oneof keyword which means that at any one time the defined type can only have one of that type of message. this should save us some space per request/response from the client and server. optional fields would have to be encode if they are defined otherwise. per packet I think this should be a small amount of space saved.

 Protobuf v2 -> v3

Should be split out:   2 -> 3 protobuf upgrade in one PR,   Other stuff in one (or more PRs), so that individual changes can be evaluated and measured separately.

After a discussion with Michael, the metrics that make the most sense to use for determining the effectiveness of each change are the total time to serialize/compress/build the packets and the amount of final payload data in the packets for a certain set of events, including client->server and server->client.
So

client -> server  (prepare client-originating data)  [final payload size, time]
client -> server (unpack server-originating data)  [final payload size, time]
server -> client  (prepare server-originating data)  [final payload size, time]
server -> client (unpack client-originating data)  [final payload size, time]

The size of the data packet can be measured either in-code at the time of (channel.write*() methods or using a proxy server to remove metric collection impacts from the client and/or server.
I'm not sure where the time to prepare the packets would be measured, but maybe measuring the total time spent in NetClient.update()  through until             NetData.NetMessage.Builder message = NetData.NetMessage.newBuilder();
message.setTime(time.getGameTimeInMs());
sendRegisteredBlocks(message);
sendChunkInvalidations(message);
sendNewChunks(message);
sendRemovedEntities(message);
sendInitialEntities(message);
sendDirtyEntities(message);
sendEvents(message);
There may be additional impacts not handled by these metrics, such as how waiting until a large amount of data is collected impacts game latency/performance.   It's unclear to me how these can be measured.


ERROR: PILI_RTMP_ReadPacket, failed to read PILI_RTMP packet header

PLStreamingKit_Example[649:60b] Stream State: Connecting
ERROR: PILI_RTMP_ReadPacket, failed to read PILI_RTMP packet header

Make sure you are using Pili Live Streaming Serverice.

We've found this may be a bug. Work in progress.

When can you repair this bug？

原因是连接失败。您可以尝试将URL更改为您自己的服务器的URL; 或者试试这个：（rtmp：//<IP_ADDRESS>：1935 / live / VC000099）注意“VC000099”是自定义的，不要与其他人重复。推荐两个测试软件：OBS，VLC


Output DAG with status information

Our dag has status for each node (step._status) but the result of write_dot does not have this information, mostly because the nextworkx package does not write any other information in the generated dot file. We should perhaps rewrite the write_dot function to add status information so that we can see in real time the change of dag during execution.

I believe that we should convert our node attribute to color and shape attributes of aggraph.

This is done but the graphs are only updated (outputted) when a node is added. We can add an option to output a dot file whenever the status of a node changes. This can be another option (-D in addition to existing -d?).

With the updated -d option, multiple dag will be written to the same output file with names {workflow}_1, {workflow}_2 etc, and there can be multiple workflows if nested workflows are involved, and the color of nodes will be changed during evolution. That is to say, this output will present complete execution process and we could even generate animations from it if we want.

For example, the output of command
sos run test.sos -d a.dot

a very simple workflow
[A_1]

[A_2]

[A_3]

[A_4]

would be
$ cat a.dot
strict digraph "de77ac72865aa830" {
A_1;
A_2;
A_3;
A_4;
A_1 -> A_2;
A_2 -> A_3;
A_3 -> A_4;
}
strict digraph "de77ac72865aa830_1" {
A_1 [color=green];
A_2;
A_3;
A_4;
A_1 -> A_2;
A_2 -> A_3;
A_3 -> A_4;
}
strict digraph "de77ac72865aa830_2" {
A_1 [color=blue];
A_2;
A_3;
A_4;
A_1 -> A_2;
A_2 -> A_3;
A_3 -> A_4;
}
strict digraph "de77ac72865aa830_3" {
A_1 [color=blue];
A_2 [color=green];
A_3;
A_4;
A_1 -> A_2;
A_2 -> A_3;
A_3 -> A_4;
}
strict digraph "de77ac72865aa830_4" {
A_1 [color=blue];
A_2 [color=blue];
A_3;
A_4;
A_1 -> A_2;
A_2 -> A_3;
A_3 -> A_4;
}
strict digraph "de77ac72865aa830_5" {
A_1 [color=blue];
A_2 [color=blue];
A_3 [color=green];
A_4;
A_1 -> A_2;
A_2 -> A_3;
A_3 -> A_4;
}
strict digraph "de77ac72865aa830_6" {
A_1 [color=blue];
A_2 [color=blue];
A_3 [color=blue];
A_4;
A_1 -> A_2;
A_2 -> A_3;
A_3 -> A_4;
}
strict digraph "de77ac72865aa830_7" {
A_1 [color=blue];
A_2 [color=blue];
A_3 [color=blue];
A_4 [color=green];
A_1 -> A_2;
A_2 -> A_3;
A_3 -> A_4;
}
strict digraph "de77ac72865aa830_8" {
A_1 [color=blue];
A_2 [color=blue];
A_3 [color=blue];
A_4 [color=blue];
A_1 -> A_2;
A_2 -> A_3;
A_3 -> A_4;
}

with 9 figures such as

We can actually animate the DAG building process, basically output dag whenever a node is added, this is not done now because we add the edges of the DAG after all nodes are added so the generated animation is not very interesting.


Cache partials from within partials

Specific Use Case:
Having a partial that echoes SVG-icons currently requires the icon title to be called twice so it can be cached, like this:
{{- partialCached "bsicon" "chevron-right" "chevron-right" -}}

It would be nice to have some form of:
{{- partial "bsicon" "chevron-right" -}}

and then in the partial some form of:
{{ cache_identificator := . }}

for the "chevron-right" part.
Basically some form of "internal" definition of a caching parameter for whatever is commited as parameter to the partial.

True.  Plus, getting a hash of . for every partialCached call could be really expensive (the hash must happen on each call).


[CP] Avoid clobbering array length in AllocateArray stub on ARM

Commit(s) to merge
ec9a660ccca94edaf04051192282c7ecaf2bcccc
Target
stable
Issue Description
Accidental register clobbering on the allocation slow path in noSuchMethod implementation on ARM leading to occasional hard to diagnose and work-around crashes in Flutter applications, e.g. https://github.com/flutter/flutter/issues/106510
What is the fix
Avoid cloberring the register by passing correct value of preserve_registers argument to leaf runtime call scope.
Why cherry-pick
Users have no reliable way to fix these crashes in their own code.
Risk
low
Issue link(s)
https://github.com/flutter/flutter/issues/106510
Extra Info
No response

lgtm

This was picked into stable 2.17.6


feat(debug): Create debug endpoint for all SMI policies

This PR adds /debug/policies endpoint.
This new endpoint is accessible via the following script $ ./scripts/port-forward-osm-debug.sh
Here is the output of curl http://localhost:9091/debug/policies:

1.change the function name in pkg/catalog/debugger.go from ListPolicies() to ListSMIPolicies().
2.change ListSMIPolicies() to only return trafficTargets
3.in pkg/debugger, change the policies struct and getSMIPoliciesHandler to only process traffic targets in policies endpoint.
Fix https://github.com/open-service-mesh/osm/issues/823

fix https://github.com/openservicemesh/osm/issues/346


Install this extension from the PyPi server fails

pip install sphinxcontrib-programoutput

Could not find a version that satisfies the requirement sphinxcontrib-programoutput (from versions: )
No matching distribution found for sphinxcontrib-programoutput

Also following links are dead:

https://pypi.python.org/pypi/sphinxcontrib-programoutput
http://sphinxcontrib-programoutput.readthedocs.io/

Same, has broken our jobs in #openstack-infra.
http://logs.openstack.org/55/370455/11/check/gate-nodepool-docs-ubuntu-xenial/b87572a/console.html

A QnD work around would be to use the URL of PyPi source package:
pip install https://pypi.python.org/packages/source/s/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.8.tar.gz
That's only a temporary solution!

Very unfortunate  - pypa/warehouse#1489

I have re-registered this on pypi and re-uploaded the 0.8 wheels that had been there before it was deleted. I do not have a copy of the 0.8 source tarballs, so I have not been able to restore those.
If anyone wants to actually adopt this moving forward, I will be more than happy to transfer the pypi record to them.

++

@emonty here is a 0.8 tar.gz file if you can upload it as well.  I had a local copy.  Thanks!
sphinxcontrib-programoutput-0.8.tar.gz

I nearly missed seeing this in the project description: "UNMAINTAINED, no issues, no pull requests". I had to dig into other issues and PRs in this repo to figure out what its status was.
@lunaryorn I would suggest that the following actions be taken to increase visibility of the status:

Add to setup.py, Development Status :: 7 - Inactive
Update readme.rst

I'll not update anything anymore.  This repo has been unmaintained for like two years and no one cares, and now I simply don't care anymore.  I'm surprised that so many used this package and I'm sorry that I broke your builds, but then that's the risk you all took when adopting a dependency from a single person without helping them.
I'll transfer this repo to anyone interested, but that's about the maximum of what I'm still willing to do with this repo.
I'm unsubscribing from this thread again; mention me if need be.


I cannot connect pip to download any packages, other solutions not working

I am new to programming, but my computer seems unable to utilise pip, [here is an example of an error I got]
python -m pip install numpy
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/numpy/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/numpy/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/numpy/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/numpy/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/numpy/
ERROR: Could not find a version that satisfies the requirement numpy (from versions: none)
ERROR: No matching distribution found for numpy
WARNING: There was an error checking the latest version of pip.

I've also tried extending the duration of the connect (using duration=1000) (this resulted in forcibly closed by connection host) and tried a ton of different ways to ask it to install django even specific versions anything that requires connection through pip does not work, ive diabled ipv6 and completely turned off all my firewall safety's, jumbo packets arent a system setting I can change I feel like I'm running out of ideas here, I've been to about 150 different pages today,
my goal was to get django working, which I have successfully created a virtual environment for and used git to put django into, but when I attempt to finish setting up django by installing that way in the environment, it needs to download dependencies from somewhere which again result in it getting stuck, can my computer not communicate properly with the websites? I can use curl to view the sources that were layed out and both curl and ping show a perfectly fine connection to these places, I am on a stable internet connection and have tried using a different internet connection aswell, just to see if it would help.
Am I doing something horribly wrong here?
(edit: put an example of this in a code block, of my attempt to install numpy as suggested, is just an example django does the exact same error.)
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))': /simple/django/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))': /simple/django/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))': /simple/django/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))': /simple/django/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))': /simple/django/
ERROR: Could not find a version that satisfies the requirement django (from versions: none)
ERROR: No matching distribution found for django
WARNING: There was an error checking the latest version of pip.

here is the error that comes up when the duration is extended.
this makes it so I can't install any packages from pypi, wireshark says I am getting a 403 forbidden on the packet calling for these things? I am only a few weeks into coding and this is very overwhelming I am hoping someone can help me.
edit 2: I have found that another computer on my network that isn't my computer is completely capable of installing packages, and a virtualbox vm on my pc (running ubuntu) has also successfully downloaded packages using pip. also this question is not answered elsewhere as all of the solutions on the other page had no impact on my problem, though the post has been marked as a duplicate of that other page.

What version of python are you using? You can check using python --version.

Closing, as there has been no response from the user. If there's still issues, please use https://github.com/pypi/support and supply the details necessary for triage.


app.use(function *() {}) can not be saved successfully

For example, i want to write the below simple code:
app.use(function *() {     this.body = 'hello world'; });
But after saving file, the code became to:
app.use(function*() {     this.body = 'hello world'; });
In fact, there is a space between the word 'function' and '*'.

VSCode Version: Code 1.15.1 (41abd21afdf7424c89319ee7cb0445cc6f376959, 2017-08-16T17:15:57.756Z)
OS Version: Darwin x64 16.7.0
Extensions:

Extension
Author (truncated)
Version

xml
Dot
1.9.2

python
don
0.7.0

code-runner
for
0.7.1

terminal
for
0.0.10

shell-format
fox
1.0.0

rest-client
hum
0.15.2

vscode-JS-CSS-HTML-formatter
lon
0.2.3

Go
luk
0.6.63

prettify-json
moh
0.0.3

PowerShell
ms-
1.4.1

java
red
0.8.0

partial-diff
ryu
0.3.1

bash-beautify
sha
0.1.1

json2yaml
tux
0.2.0

Steps to Reproduce:

Reproduces without extensions: Yes/No

Our default formatting is
app.use(function* () { this.body = 'hello world'; });

Note that the * has been shifted next to the function keyword. We are tracking more formatting options for the * here:
https://github.com/Microsoft/TypeScript/issues/9001
I suspect that an extension like vscode-JS-CSS-HTML-formatter could be deleting the space all together. Can you please try disabling and see if you end up with the above formatting

You guessed!
Caused by JS-CSS-HTML Formatter


ROX-11519: Onboard E2E tests to OSCI

Tested with https://github.com/openshift/release/pull/29534

I'll come back with a full review when you are feature complete.
But in the meantime: I would keep scripts/ci/jobs for files that are a 1:1 match with test names (AKA jobs) coming from openshift release. That is what we are striving for on the stackrox/stackrox side, so if we want to maintain maximum symmetry I'd follow that. (With the python wrapper **** this is not followed but I hope to remedy that).

@gavin-stackrox moved deploy.sh from ci/jobs to ci/

@gavin-stackrox @jvdm https://github.com/openshift/release/pull/29534 passes now, so this is ready for review. https://github.com/openshift/release/pull/29807 is the PR for the master branch

@RTann looking through the test rehearse log I see: scripts/ci/deploy.sh: line 5: /go/src/github.com/stackrox/scripts/lib.sh: No such file or directory. Probably a 'ROOT' source path setup wrong after the file move (though the failure is silently ignore)

@RTann I think you will need this: https://github.com/stackrox/stackrox/blob/4d3fb539547d1935a35040e4a4e8c258a53a92e4/scripts/ci/lib.sh#L773 once the e2e test starts running in regular PRs. At least this is what was required for stackrox/e2e tests to get them to stop interacting with the OpenShift cluster.


Change from darwin to macos

It's silly to call what we are building darwin, it's really macos.
Also matches behaviour with https://github.com/MatrixAI/TypeScript-Demo-Lib/pull/25

Woops. This is wrong.


2# - Code organization into separate files - hud code

Discussion issue: #150
Second part of code reorganization, this time moving hud related functions from drawobjects.lua to hud.lua. (cddcc7f)
Additional changes:

Fixing font sizes: While moving code, a flaw in some indicator functions popped up causing wrong font sizes for some indicators. Has been fixed by setting the font size in each relevant function individually. (966e2c1)
Score text misaligned: Fixed by using printf instead of print to center the text. (0dd7839)
Changed function name "DrawNearestBase" to "DrawRangefinder" to make it clearer what the function actually does.

You can easily check/test changes via my fork.
Let me know what you think.

Oh that HUD thing was slowly killing me. lolz. Glad it's fixed!  Thanks


Improve Documentation

Maybe we could add a live script or two

normal usage
comparing to Monte-Carlo

Added live scripts, 5af28ab333038a33ef8659a4ef5c6e90b7a4387a
Should check MATLAB class documentation.

Some documentation updates, 610c51a67e6cdbf25038e132ad0fdef9bebb7d42


Update CONTRIBUTING.md

I went to clone the repo and when copy the command it had text error in uppercase and lowercase. Hope it will be helpful for new contributors :)

@Tubaleviao @indiehjaerta @javamultiplex
I am new to contributing can you tell me what is Merging is blocked....

@Tubaleviao @indiehjaerta @javamultiplex I am new to contributing can you tell me what is Merging is blocked....

nevermind I guess maintainers can merge...that's why


update to 1.8.27

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/recipe.yaml) and found it was in an excellent condition.

Thanks for updating libgsasl @chrisburr!

Thanks for updating this, I was going to do it but you had opened this ~20 minutes before 😆


flutter_secure_storage package and AppStore Export Compliance

I'm using flutter_secure_storage in my app and I want to clarify one moment regarding AppStore Export Compliance.
Do I need to choose 'Yes' here if I use flutter_secure_storage?

Hey @andriy-gulak-ew
The data is stored in iOS Keychain, according to https://developer.apple.com/forums/thread/47634 and https://developer.apple.com/documentation/security/complying_with_encryption_export_regulations looks like it is exempt from export documentation upload requirements.

Hey @mogol
Got it, good news then :)
Thanks for your feedback!


Remove logging password when debug logs are enable

Purpose

$subject

Codecov Report

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

@@            Coverage Diff            @@
##             master     #315   +/-   ##
=========================================
  Coverage     62.03%   62.03%
  Complexity      123      123
=========================================
  Files            13       13
  Lines           648      648
  Branches         71       71
=========================================
  Hits            402      402
  Misses          208      208
  Partials         38       38

Impacted Files
Coverage Δ
Complexity Δ

...allerinax/docker/generator/models/DockerModel.java
75.82% <ø> (ø)
37 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Prevent resolving routes like /opencollective/blah

Nice, I love how reviewing pull requests give each other ideas on how to improve the code! 👍


How do you check local datastore?  localId always shows null

I can't tell if something is pinned or not...localId always shows null but i know some things are pinning though...
is there a way to check the local datastore to see if things are actually saving?

Unfortunately, there is no way to check if something is available in the local datastore or not directly.
The only way we have right now - query for it and check if the returned count is non-zero.
Something like this would work:
PFObject *object = ...;
PFQuery *query = [[PFQuery queryWithClassName:object.parseClassName] fromLocalDatastore];
[query whereKey:@"objectId" equalTo:object.objectId];
[query countObjectsInBackgroundWithBlock:^(int number, NSError * _Nullable error) {
    if (number != 0) {
        // Object is in Local Datastore
    } else {
        // Object is not in Local Datastore
    }
}];

Let me know if this helps, if not - please feel free to reopen the issue.

So when I print the object and see that localId reference...that doesn't mean really anything, right?

Not if you are using Local Datastore, no. :)

Ok good to know....it would be nice in the future to be able to see what is in local data store just to really verify things.  By the way....is local datastore using sqlite or something on the lines of that?

It does indeed use sqlite and our custom layer on top on both iOS and Android.


Can we get a release?

Using @main is not exactly great in an action – could be v0.1.0 maybe?

great call, thank you!


Feature request: disable per-tab

I have been using it for a couple weeks and Saka Key seems like a great replacement for VimFX so far!
One feature I just realized that Saka Key doesn't seem to have is disabling on selected tabs.  In VimFx one was able to set a list of pages on which it is disabled; this is useful for example in gmail where the already-provided keybindings are quite good. (There was also the option to disable only some keys, but that would be another level of complexity.)

Just to be clear, you want to be able to disable Saka Key on specific domains, not on specific physical tabs? Check out my comments #4. I think that a domain blacklist is a good short-term solution.

I was actually thinking of both.
Domains would be more useful, but specific tabs seemed like a simpler
request when I opened this issue.
I think the pass keys feature will probably work fine for disabling per
tab.  Somehow I didn't find that in the docs earlier.
As for the per domain black listing discussed in #4, that looks pretty
much perfect. One thing that would be nice, but not crucial is
wildcards. I used to block most keys on
http://localhost:8888/notebooks/* (Jupyter notebooks, but not the rest
of Jupyter).
On 09/08, Sufyan Dawoodjee wrote:

Just to be clear, you want to be able to disable Saka Key on specific domains, not on specific physical tabs? Check out my comments #4. I think that a domain blacklist is a good short-term solution.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/lusakasa/saka-key/issues/42#issuecomment-327979425

Just a small clarification on VimFx: The blacklist in VimFx does not disable VimFx on certain domains, but enters Ignore mode by default there. The difference is that it is possible to exit Ignore mode if you want to temporarily pop back into "VimFx mode" again.

@musoke, the blacklist would contain URL globs like your Jupyter notebooks example. And I think ignore mode by default, as @lydell describes, is the way to go.

Sounds great to me!
Thanks!
On 09/13, Sufyan Dawoodjee wrote:

@musoke, the blacklist would contain URL globs like your Jupyter notebooks example. And I think ignore mode by default, as @lydell describes, is the way to go.
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/lusakasa/saka-key/issues/42#issuecomment-329048513

Is there any progress on the blacklist? My work uses the Outlook Webmail, and Saka doesn't seem to recognize the textboxes on the compose message pane properly. Consequently, I mangle multiple emails every day. Even when I remember to shift-; to turn on key passing, moving focus out of the browser and back in turns off key passing. This leads to multiple lost emails each day as Saka captures key presses and does something surprising with them.
I'd really like to be able to blacklist the webmail client!

Correct me if I'm wrong, but it looks like plantarum's entry above presents a totally different issue.
Specifically:  " moving focus out of the browser and back in turns off key passing".    It doesn't seem reasonable that this should occur.
Moving focus out of the browser and back DOES NOT, for example, destroy displayed hints.
There is also the issue of moving to a different tab and back.   However, from what I can see this, in regards to "destroying" a setting, is the same as moving focus  out of the browser.
I would like to suggest that " moving focus out of the browser and back in turns off key passing" be considered a new issue.  And, of course, also to be learned is:  What else gets "destroyed" similarly?

There are different issues, and I can open new tickets to address them. But those are secondary to the blacklist feature - I need to use a website that doesn't work well with Saka key. I never want to use Saka on that site, so a permanent blacklist would be ideal.
I'll see if I can isolate some of the other issues with details on how to reproduce them in one or more new threads.

I think the issue of pass key not being retained is already mentioned in #123. Specifically, that post mentions:

The pass keys functionality works, but it is reset after reloading the page or switching to a different one.

Hey is a blacklist still being worked on? I'd really love this feature for a website that offers typnig tests. It sometimes seems to get interrupted by saka key. By that I mean that suddenly hints get shown or it reloads the tab, things like that.

@ffactory-ofcl See #171.

@lydell I see. I'd help but I'm way too inexperienced as a programmer and don't have that much time on my hands atm. Hope you will find someone

Just a quick question / update. Is this issue resp. a blacklist being worked on? I miss a site-based disable function dearly (jupyter-notebooks...).

@marcoep See #171.


Fix regression in ps with custom format

Using the table keyword in go templating had regressed and was
no longer working.
Fixes: 2221
Signed-off-by: baude<EMAIL_ADDRESS>

/lgtm


Create oum-kale.md

Notes for Reviewers
This PR fixes #
Signed commits

[ ] Yes, I signed my commits.

🚀 Preview for commit b2944e9d8ea01e2819269e2346fea909b10551bb at: https://66fea2511c356faa9163ad1e--meshery-docs-preview.netlify.app

Thank you @oumkale 😎


create worker-azure-ai in GA version of aio, create pdf services worker

Description
Needed for the field enablement demo on Thursday
Create 2 new example workers:

azure ai (image ocr & image tagging)
pdfservices (exportPDF, compressPDF, pdfProperties, and createPDF) (createPDF will be supported ootb soon)

Related Issue
jira: https://jira.corp.adobe.com/browse/ASSETS-16293
How Has This Been Tested?
Tested both actions locally with devtool & in AEM
Screenshots (if appropriate):

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

@badvision thanks for the review!

Only minor gripe is that we should probably not have strict validation on exact values coming back from a machine learning service.

These are mocked values we control: https://github.com/adobe/asset-compute-example-workers/blob/e280270891bc4fb34fdc9f55f383a2eea0bb04c3/ga-aio-projects/worker-azure-ai/src/dx-asset-compute-worker-1/test/asset-compute/worker-azure-ocr/png-default-success/mock-westus.api.cognitive.microsoft.com.json


Victor VosMottor: Watch lotterycritic.com

Victor VosMottor requests the watch of the watch_keyword lotterycritic\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

lotterycritic\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by NobodyNada in Charcoal HQ


Implement /auth in REST API

Based on #32, once that PR is merged, the no of files changed in this PR will be reduced significantly

Pull Request Test Coverage Report for Build 106

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
16 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-10.1%) to 86.076%

Files with Coverage Reduction
New Missed Lines
%

lib/cadet_web/controllers/page_controller.ex
1
0.0%

lib/cadet_web/views/view_helpers.ex
1
0.0%

lib/cadet_web/views/error_helpers.ex
4
0.0%

lib/cadet_web/controllers/session_controller.ex
10
9.09%

Totals

Change from base Build 89:
-10.1%

Covered Lines:
136

Relevant Lines:
158

💛  - Coveralls

@evansb cleaned up after #32 was merged. Currently the missing coverage is from the incomplete Assessment context (#26) and removal of authenticated pages (so the part of code that ensures authentication is not covered yet.)

@evansb Re: logout needing to pass refresh_token
Because the hook is located on Guardian.revoke(token), so I need to know the token to be invalidated (and since it's JWT this info is not stored anywhere by me). Access token is valid for 1 hour only, so it makes sense to simply invalidate the refresh token. However, if you like, I can let the user pass the access token and invalidate that as well.
Alternatively, I can add a field to user to store his/her refresh_token but I feel this solution is not as elegant since the client already stores the refresh_token anyway.

@evansb Fixed this according to your code review, should be ready for merging.


How can I pass data or perform segue from sectionController ?

New issue checklist

[ ] I have reviewed the README and documentation
[ ] I have searched existing issues and this is not a duplicate
[ ] I have attempted to reproduce the issue and include an example project.

General information

IGListKit version:
iOS version(s):
CocoaPods/Carthage version:
Xcode version:
Devices/Simulators affected:
Reproducible in the demo project? (Yes/No):
Related issues:

Debug information
# Please include debug logs using the following lldb command:
po [IGListDebugger dump]

The SectionController has reference to the ViewModel, and whenever there is tap action happens in the SectionController's delegate, which came from the actual Cell. We can trigger/perform the segue to do navigation etc. All the necessary data should be either generated inside the SectionController or part of the View Model it owns. Hope this helps :)


🌐 Add Dutch translation for docs/nl/docs/python-types.md

Looks good, thanks again!
PS: I'm keeping track of some of the main decisions in #9200 (first post) to record some of the decisions we're taking and to ensure consistency across pages 😉

That's great! Thanks!

Nice, thank you! @maxscheijen @svlandeg :smile_cat:


Outlook source connector migration

Migrates outlook source connector to V2

TODO(Filip Knefel): Based on V1 I used web_link but there's also
message.resource_url, which one better suits this field?

I saw this comment you left, do you by chance have an example of what those two look like for a given doc?

TODO(Filip Knefel): Based on V1 I used web_link but there's also
message.resource_url, which one better suits this field?

I saw this comment you left, do you by chance have an example of what those two look like for a given doc?

So I've looked into it and:

resource_url is a graph API url we'd send the request to, in order to access the resource e.g.
https://graph.microsoft.com/v1.0/users/<email>onmicrosoft.com/messages/<message-id>
web_link is a link to view the resource content via outlook in the browser


Implement Fiber#storage and friends

Even though this is a Ruby 3.2 feature, it can be a very useful tool to handle some issues with cyclic data structures in our code. For example, the cycle detection of Set#inspect only works for 1 level depth:
def inspect
  items = to_a.map { |e| equal?(e) ? '#<Set: {...}>' : e.inspect }
  "#<Set: {#{items.join(', ')}}>"
end

This passes the specs because the specs are simply 1 level deep:
it "correctly handles self-references" do
  (set = Set[]) << set
  set.send(@method).should be_kind_of(String)
  set.send(@method).should include("#<Set: {...}>")
end

It would result in an infinite loop if we had a depth of more than 1:
a = Set[]
b = Set[a]
a << b
a.inspect

With Fiber storage, we could resolve this with something like this:
def inspect
  if Fiber[:set_inspect_current]
    if Fiber[:set_inspect_current].include?(object_id)
      "<Set {....}>" # Cycle detected
    else
      "<Set: #{each(&:inspect).join(', ')}>" # Current inspect
    end
  else
    # This is the first in a non-recursive call:
    f = Fiber.new(storage: { set_inspect_current: [object_id] }) do
      result = "<Set: #{each(&:inspect).join(', ')}>" # Current inspect
      Fiber[:set_inspect_current] = nil
      result
    end
    f.resume
  end
end

We have a number of this kind of issues in the current code base.

This has a hidden dependency on https://github.com/ruby/spec/pull/1058, since the current specs are a bit limited.

I think this is ready now. Our first steps towards Ruby 3.2 compatibility, and as a bonus the upstream specs for fiber storage now test a lot more corner cases.

Cool!


feat: azure openai support

adds azure openai support

@toby unfortunately not due to difference in apis. this is why it's a separate path in https://github.com/sashabaranov/go-openai/blob/62eb4beed29f4e821a59088f043fb56761d79fa7/config.go#L53

Ah I see, it looks like the api type is just a string so we could probably just add an api-type key to the api in the config. We may also want to put the token-env-var in the config, so you could set it to OPENAI_API_KEY or AZURE_OPENAI_ENDPOINT (or something else). Then we wouldn't have to have any special cases in the code and it could all be done in mods -s.

You should also make sure this supports the config.AzureModelMapperFunc, as we have deployments that are not named the same as the model. Or will the mods --settings support this via the api models key aliases maybe?

I added a few things to this commit to push more of the work into the config file. I'll probably clean this up a bit more, but if anyone wants to take a look and give some feedback, it's here:
https://github.com/charmbracelet/mods/compare/main...azure-openai
Now you can set the AZURE_OPENAI_KEY env var, update the Azure endpoints in the config with mods -s then use the models with the -m flag. If there's a name collision with the models in different APIs, mods will prefer the API defined earlier in the YAML. You can still reference the model with a unique alias or by specifying the api directly with --api.
I haven't tested the Azure stuff because I'm waiting on access approval, but it should work according to the openai library docs.
New settings file format:

Also, @philipsd6 you should be able to just specify your custom model name as the key in the YAML file with mods -s.

Also, @philipsd6 you should be able to just specify your custom model name as the key in the YAML file with mods -s.

OK @toby, I built mods from your azure-openai branch and used a config like this:
apis:
  azure:
    api-key-env: OPENAI_API_KEY  # I use the same env var for Azure :)
    base-url: https://my-example-resource.openai.azure.com
    models:
      MyGPT35:
        aliases: ["az35t"]
        max-input-chars: 12250
        fallback:

…and it works, with either the alias or the key as the --model parameter. The only difference with your screenshot above is that the base-url should not include the path (as that's handled by the go-openai internally.)
Thanks!

Thank you so much for testing @philipsd6. I fixed the base-url based on your note as well. I'll merge this and we can put it in the next release (should be soon).


Nav shouldn't display on getting-started pages

Compare:
http://localhost:3000/unified-communications/getting-started-account-super-user/your-equipment

to:
https://www.vonage.com/unified-communications/getting-started-account-super-user/your-equipment/

Per discussion with the customer, closing this issue as it's not necessary to replicate the getting-started-account-super-user pages.


hangouts_to_sms.py stops with type error

Thanks for creating this handy tool! I'm experiencing some errors running the script (python 3.6, High Sierra), and was wondering if anyone had any insights. I've made sure that Hangouts.json (is in the same directory as the script, and I've edited my phone number in hangouts_to_sms.py (format "+18005551212"). I have also made the changes to lines 25, 27, and 57 of hangouts_parser.py suggested by onemodtwo (https://github.com/adein/hangouts_to_sms/issues/8), and now it says that it successfully parses the Hangouts data. Hangouts.json is 189M, and the script generates messages.xml (22M). However, it stops with a TypeError when converting the SMS export file:
$ python3.6 hangouts_to_sms.py
Parsing Hangouts data file...
Done.
Converting to SMS export file...
Traceback (most recent call last):
File "hangouts_to_sms.py", line 18, in
titanium_output.create_output_file(conversations, self_gaia_id, OUTPUT_FILE)
File "/Users/venkat/Desktop/hangouts_to_sms-develop/titanium_backup_formatter.py", line 74, in create_output_file
content_is_plain = self._is_ascii(message.content)
File "/Users/venkat/Desktop/hangouts_to_sms-develop/titanium_backup_formatter.py", line 173, in _is_ascii
return len(text) == len(text.encode())
TypeError: object of type 'NoneType' has no len()
Thanks!

Hey! I ran into the exact same issue as you above, and I think I've worked around it. I've got a limited development background - not at all in Python - so I'm not 100% sure what I'm doing here, but I thought I'd pass around my steps in case it helps get you unstuck. And to prove that it is possible!! :)
First, a change in titanium_backup_formatter.py - I've replaced lines 78, 79, and 80 -
message_string += ">{}".format(
    escape(message.content) if content_is_plain
    else self._base64_text(message.content))

with the following three lines:
message_string += ">"
if message.content is not None:
    message_string += "{}".format(escape(message.content) if content_is_plain else self._base64_text(message.content))

Basically I added another "if not none" check in there, and smushed the last line all onto one. After making this change (and of course, the other ones you've already listed), I finally was able to get the script to run for me.
However, it wasn't the end of the road. Trying to import via Titanium Backup, the app would crash every time. Turns out, it was the same records that were causing the original problem. In my case, I had a bunch of empty <sms> records with no content in them. These particular tags didn't have "encoding" attributes; maybe that's required for titanium backup? I'm not sure.
If I deleted these records from the output messages.xml file, I was able to import everything successfully.
One last thing - right at the top of the the messages.xml file, the "count" attribute of the <threads> tag was wrong. Not sure how much that matters to Titanium Backup, but I did update it manually with the total number of <thread> tags in the file to be safe.


ADD Contributor Section on  the Readme

Description
The README currently lacks a dedicated section showcasing contributors. Adding a "Contributor" section would highlight the individuals who have contributed to the project, acknowledging their efforts and encouraging community participation.
Solution Proposal
Implement a Contributor Section in the README to display a list of contributors. This section can include GitHub profile pictures, usernames, and links to individual GitHub profiles. Tools like contrib.rocks or a custom markdown table can be used for visual representation.
Expected Outcome

A dedicated section labeled "Our Valuable Contributors" or similar, added towards the end of the README.
Display contributor GitHub avatars with links to their profiles.
Encourage a sense of community and appreciation among contributors.

Steps to Implement

Choose a method to display contributors (e.g., using contrib.rocks widget or manually created list).
Integrate the widget or manually update a markdown table in the README.
Ensure it updates automatically with new contributions or is easy to maintain.
Test to ensure the section looks visually appealing and works as expected.

Additional Context

Here's an example of how the Contributor Section can look:## 🌟 Our Valuable Contributors

[![Contributors](https://contrib.rocks/image?repo=your-repo-name)](https://github.com/your-repo-name/graphs/contributors)

@Git21221 assign me the task under GSSOC EXT 24 AND HACKTOBERFEST

@alo7lika I don't want to add this in readme, here readme is a documentation for primary users

@alo7lika I don't want to add this in readme, here readme is a documentation for primary users

should I add it in the dev branch instead of main then?

@alo7lika let's just not include this and close the issue


Add getRequestCookie(name) and isSecure() in WebContext

PR: https://github.com/pac4j/pac4j/pull/376

Replaced by PR: https://github.com/pac4j/pac4j/pull/379


Pdf.js is not able to open PDFs with large-page-size pages in Firefox and IE11

Link to PDF file (or attach file here):
https://github.com/Parthas-Menethil/Pdfjs_LargePageSizeIssue
Configuration:

Web browser and its version:
Firefox 50.1.0
IE 11.0.9600.18524 IEUpdateVersions:(11.0.37 KB3197655)
Chrome 54.0.2840.99

Operating system and its version:
Windows 7

PDF.js version:
The version used by "Firefox 50.1.0"?

Is an extension:
Not applicable

Steps to reproduce the problem:

Open Firefox
Drag pdf file in

What is the expected behavior? (add screenshot)
A pdf with "TEST" text shown on the page
What went wrong? (add screenshot)
Pdf.js in firefox or IE is not able to open this PDF.
However, the same version of pdf.js can open the pdf in Chrome(Maybe V8's javascript optimization/performance is better)
Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension):
Not applicable
Comments:
I found pdf.js running on Firefox/IE has issues opening a pdf file with large-page-size pages. On Chrome, I can see a viewer built by Pdf.js takes a bit longer to load up this simple pdf but it finally shows the correct result. However, on Firefox/ID, it never returns anything but a blank white page with minutes of waiting.
As I mentioned in "What went wrong? (add screenshot)" section, I think there are some expensive operations within pdf.js while opening a pdf with large-page-size pages. Chrome's V8 is able to handle this expensive operation but Firefox/IE's js engine is not.
There's no error message in the js console of Firefox when this happens. It seems the browser will quit script execution after it hangs for a few seconds.
Please feel free to share your ideas about this issue, Thank you.

The PDF contains a huge image resource, for which allocating space probably fails. Marking as performance issue.

Duplicate of #6741.


558 update version to 2.0.4-alpha

Work for #558
update version to 2.0.4-alpha and regenerate c#

@baseTwo Could you update the Firely SDK to v5.10.3 and include that as well? In FS we are going to upgrade, too. Then we'll have the version harmonized.


Prop changes doesn't proc rerender inside ReactCSSTransitionReplace children

I'm using ReactCSSTransitionReplace in my application. Function this.getMenu returns a different menu depending on the currentUnit and data and when the menu changes it is animated (this is expected).
return <ReactCSSTransitionReplace
  style={{ height: '100%' }}
  transitionName={this.isSelected() ? slideLeft : slideRight}
  transitionEnterTimeout={400}
  transitionLeaveTimeout={400}
>
  {this.getMenu(this.props.currentUnit, this.props.data)}
</ReactCSSTransitionReplace>

But when I update the currentUnit prop on my component, menus shouldn't change - inside the current menu the highlighted entry should change, but it should not trigger an animation (which is also expected). But the problem is - while the prop successfully propagates inside the getMenu function (when I put a console.log there it receives new prop), the changes doesn't reflect in the browser - nothing changes. It has to be an issue with RCTR because when I remove it, the problem doesn't occur. Maybe it implements sCU somewhere and it doesn't catch the changing prop? Is there a workaround?
Edit 1: The issue is still there in 3.0.1.

I've found that it only updates for different keys. So for now you can either revert to <3.0.0 which I've found to not be compatible with React 16, or if you only have a couple props you can calculate the key from them. For example
<div key=`keyname${someArray.length}${aBoolean}${Object.keys(anotherProp)}` />

Just a temporary solution until a fix is published.

@GeKorm The problem is I don't want to trigger the animation, just change some classNames way inside the RCTR children.

@GeKorm are you saying this used to work fine in v2, but it's no longer working in v3?

@marnusw I can confirm that it is indeed working in 2.2.1, but not in 3.0.1.

I've created v2.2.2 until v3 is more stable (#55 if you want to publish it @marnusw)
It contains compatibility changes for React 16.
You can use it by doing:
yarn add https://github.com/GeKorm/react-css-transition-replace
or
npm i https://github.com/GeKorm/react-css-transition-replace
will replace it and let you use the fork.

v2.2.2 has been published, but I also plan to fix this over the weekend. I'm pretty sure I know why this is happening.

I'm pretty sure this will be fixed in v3.0.2 just released, but let me know if there are any further issues.

Rerendering works in v3.0.2, thanks!


Check members of class expression too

Fixes #4431

I have put up a suggested simpler fix in #4501. Feel free to grab from it.

Closing since #4501 got this.


Add DAPR_API_TOKEN to HttpClient

Describe the proposal

Extend HttpClient to add DAPR_API_TOKEN as http header

Docs: https://github.com/dapr/docs/blob/v1.9/daprdocs/content/en/operations/security/api-token.md
Related: #282

Closing in favor of #282


Feature/implement spaceing guidelines

Description
Implemented spacing guidelines
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have updated the CHANGELOG document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

"Accessibility" is registered as files changed even though this branch does not add "Accessibility". Might be due to merging branches instead of rebasing?


line points doesn't center on grouped bars

Anyone who knows how to solve this issue please? i need to center align the dots for each of the bar.

@r0unflame Could you please provide a jsfiddle that reproduces the issue ?

Closing due to missing test case


calling archive.finalize() makes the stream returned from createFileReadStream not receive any data

I've encountered a weird issue, not sure if it's intended.
I have two file:
index.js
var hyperdrive = require('hyperdrive')
var level = require('level')
var swarm = require('hyperdrive-archive-swarm')

var db = level('./test.db')
var drive = hyperdrive(db)
var archive = drive.createArchive()

var ws = archive.createFileWriteStream('foo')
ws.write('hello')
ws.write('world')
ws.end()

var link = archive.key.toString('hex')
console.log(link, '<-- this is your hyperdrive link')
archive.finalize(() => {
  archive.list((err, entries) => { console.log(err, entries) })
})

var sw = swarm(archive)

peer.js
var swarm = require('hyperdrive-archive-swarm')
var hyperdrive = require('hyperdrive')
var level = require('level')

var db = level('./another-hyperdrive.db')
var drive = hyperdrive(db)

var link = new Buffer('<link from index.js>', 'hex')
var archive = drive.createArchive(link)
var sw = swarm(archive)

archive.finalize((err) => {
  var rs = archive.createFileReadStream('foo')
  // rs won't receive any data
  rs.on('data', x => {console.log(x)})
  rs.on('error', x => { console.log(err) })
})

As in the example, if I call archive.finalize() on an archive I'm not owning it. Any file read stream will not receive any data. no event listener is called. If I remove the archive.finalize() in peer.js, the stream works fine.
I think if I shouldn't call archive.finalize() in the situation. It should raise or return an error.
More question: When should I use archive.finalize()? Should I only call it on a non-live & owned  archive? What's the purpose of it?

When should I use archive.finalize()? Should I only call it on a non-live & owned archive? What's the purpose of it?

Ya, you should only call archive.finalize() on owned archives. Finalizing requires write permission on the archive. It will write the metadata allowing you to share.
If you remove archive.finalize, the stream should receive data.

I think if I shouldn't call archive.finalize() in the situation. It should raise or return an error.

Definitely. I ran this with memdb first instead of level and it did throw a weird error. It may be calling back with an error, but mine wasn't.
We definitely callback with an error if you run finalize with unowned archives.

Thanks for the clarification.
I tried memdb and got this error:
/Users/poga/projects/hd_test/node_modules/sodium-signatures/sodium.js:9
  return sodium.crypto_sign_verify_detached(signature, message, publicKey)
                ^

Error: argument publicKey must be a buffer
    at Error (native)
    at Object.exports.verify (/Users/poga/projects/hd_test/node_modules/sodium-signatures/sodium.js:9:17)
    at loop (/Users/poga/projects/hd_test/node_modules/hypercore/lib/feed.js:408:23)
    at Feed._putRoots (/Users/poga/projects/hd_test/node_modules/hypercore/lib/feed.js:384:3)
    at loop (/Users/poga/projects/hd_test/node_modules/hypercore/lib/feed.js:268:10)
    at Feed.put (/Users/poga/projects/hd_test/node_modules/hypercore/lib/feed.js:229:3)
    at write (/Users/poga/projects/hd_test/node_modules/hypercore/lib/replicate.js:254:13)
    at Channel.ondata (/Users/poga/projects/hd_test/node_modules/hypercore/lib/replicate.js:175:43)
    at emitOne (events.js:96:13)
    at Channel.emit (events.js:188:7)

However, I didn't receive any error in the callback with level.
peer.js
var swarm = require('hyperdrive-archive-swarm')
var hyperdrive = require('hyperdrive')
var level = require('level')

var db = level('./another-hyperdrive.db')
var drive = hyperdrive(db)

var link = new Buffer('409151b9ac9a00bf1ad01ab9403c93b3b74ace501dec7b4b33f7b4a14144c0ed', 'hex')
var archive = drive.createArchive(link)
var sw = swarm(archive)

archive.finalize((err) => {
  // err === null
  var rs = archive.createFileReadStream('foo')
  rs.on('data', x => {console.log(x)})
  rs.on('error', x => { console.log(err) })
})

version:
hyperdrive: 7.6.0
hyperdrive-archive-swarm: 4.1.6
level: 1.4.0

@poga which version of node to you use? that last error looks weird indeed

@mafintosh I tried with 6.5.0 and 6.6.0. both have the same result.

I tried to find the root cause of the issue.
Looks like the issue is in hypercore. I encountered some TypeError in hypercore's test so I'm current stuck there.
Just opened https://github.com/mafintosh/hyperdrive/pull/101 . Maybe add some notes about  archive() will help some other people.


fix: resolve errors when running Makefile and revise manifests files.

resolve errors when running Makefile, which caused by auto-generated field 'description' in CRD manifests files and rejected by apiserver, there comes a workaround from kubebuilder community.

kustomize build config/crd | kubectl apply -f -
customresourcedefinition.apiextensions.k8s.io/xdljobs.xdl.kubedl.io created
customresourcedefinition.apiextensions.k8s.io/xgboostjobs.xgboostjob.kubeflow.org created
Error from server (Invalid): error when creating "STDIN": CustomResourceDefinition.apiextensions.k8s.io "pytorchjobs.kubeflow.org" is invalid: spec.validation.openAPIV3Schema.properties[metadata]: Forbidden: must not specify anything other than name and generateName, but metadata is implicitly specified
Error from server (Invalid): error when creating "STDIN": CustomResourceDefinition.apiextensions.k8s.io "tfjobs.kubeflow.org" is invalid: spec.validation.openAPIV3Schema.properties[metadata]: Forbidden: must not specify anything other than name and generateName, but metadata is implicitly specified
make: *** [install] Error 1

revise some config files.

fix #77


Adds Shobu category

Includes AI playground and data set of randomly played Shobu games. Not strictly research, but provides tools for someone to do research on Shobu with. Closes issue #3

Thanks :+1:
I'll add them to the exported versions.


How to use this with React

This script is wonderful, but when used with React it will not work properly. What should I do ?

I had no problems using it like inView.is(element) with Hooks.

Thanks.
but I can’t imagine how to write code with hooks.
Would you show me sample code here?

Sure, @theNewWave !
Imagine you have two sections which take the entire viewport's height (100vh) and we want to display the current section's name in a box which is on the screen right now.  I've put together a quick demo over at codesandbox.io
Code:
import React, { useRef, useState, useEffect } from "react";
import inView from "in-view";

inView.threshold(0.5);

function App() {
  const sectionA = useRef(null);
  const sectionB = useRef(null);
  const sections = [sectionA, sectionB];

  const [visibleSection, setVisibleSection] = useState(false);

  useEffect(() => {
    const onScroll = () => {
      sections.forEach(section =>
        inView.is(section.current) ? setVisibleSection(section) : null
      );
    };

    onScroll();

    document.addEventListener("scroll", onScroll);

    return () => document.removeEventListener("scroll", onScroll);
  });

  return (

      {visibleSection && (

{visibleSection.current.innerHTML}

      )}

        Section A

        Section B

  );
}

I hope this helps!

Thank you for kindly telling me the code!!

I have trouble using it with React Router. It doesn't seem to work when I navigate through a route, then going back on the previous one. I use it to add class and trigger animations, but it doesn't work. Anyone ?

@theNewWave
  const sections = ['one', 'two', 'three', 'four', 'five'];
  const [sectionInViewport, setSectionInViewport] = useState(null);
  useEffect(() => {
    sections.map(section => {
      //each section is rendered with `#${id}` from list above, i.e.
...</>
      inView(`#${section}`)
        .on('enter', () => {
          console.log(section);
          setSectionInViewport(section);
        })
      /*.on('exit', el => {
        //optional block
        setSectionInViewport(null);
      });*/
    });
  }, []);


Adding --isolated option

I want pip to ignore what is in pip.conf during install
Solution I tries:  Adding an extra --constraint option but tthat doesn't work, it will only add to the constraints, not replace it as pip allows multiple constraints files.
So I wanted to use the --isolated option (https://pip.pypa.io/en/stable/cli/pip/#cmdoption-isolated). This is indeed not on https://pip.pypa.io/en/stable/cli/pip_install/ as it is a general pip option.
More context on my use-case:
I have a general constraint configuration in pip.conf for the application dependencies. I want to ignore because there is a dependency conflict between a dependency of my project and a dependency of pip-audit (a tool I want to run in my CI/CD pipeline against my pyproject.toml). So, I wanted to use instld to install/use pip-audit without having it in the main virtual environment, avoiding the conflict. But, it also takes into account the constraint in pip.conf (as it should). But having the isolated option should fix it for me.

Hello! I have added this since version 0.0.24.

Thanks 💯 !
🟢 Just tested it out and it works as expected!


Missing translation key for "accountwizard.import"

That appeared in my browser console, when using cozy in French.

Thanks! if somebody's willing to fix this, it's a new line to add in the client/locale/fr.js file.


Portal guide

I am porting the howistart.org guide to a notebook. Still WIP but we need to:

[x] Figure out ways to import the images. I believe it can be done by adding a images: %{...} argument to the import function that has the image path as key and the image as value.

[x] Implement #213

[x] Improve the style (#317)

This PR is ready for merging, it is only missing the images, which we will add in a later PR soon.
It adds a whole new guide as a introduction to Elixir, updates the Elixir and Livebook guide to talk about inputs, and provides more links across the explore notebooks!

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


New social media cards design for collection

At Kodadot we've been at the forefront having first these social cards showing price and items.
I would like to see new overlay for collection
Thing is what we want to show on card? I guess first minted NFT is good start, later it could be banner and PFP of collection, items, owners and total volume, floor is kinda useless info for now.
I think we can show dynamic information based on for

item
collection
user profile (whale,collector,creator)

https://opensea.io/krunker/created
https://opensea.io/collection/meka-legends-genesis
https://opensea.io/collection/parallelalpha

Where exactly are these cards used and can be seen?

Where exactly are these cards used and can be seen?

in socials, like twitter,FB,telegram,discord fetches preview picture of collection to let user know what's collection about before clicks on it

user profile pic? or user name? what if artist did not set his identity?

And you mean user profile of the creator?

And you mean user profile of the creator?

yeah but we don't have profile pic for users yet.

yeah but we don't have profile pic for users yet.

#2009

Seems previews are working, let's crack on this one :)

https://github.com/kodadot/nft-gallery/issues/5567

Meanwhile in other universe

https://vercel.com/docs/concepts/functions/edge-functions/og-image-generation
ht @vikiival

Or quick hacking via workers x vercel/satori
https://og-playground.vercel.app/

Also nuxt version
https://github.com/harlan-zw/nuxt-og-image/releases/tag/v2.0.0

Yes it's coming
https://twitter.com/steventey/status/1694426190088651140

READING: https://vercel.com/guides/displaying-article-headlines-in-social-previews
REPO: https://github.com/steven-tey/og

Seems making it easy going and not to bloat with text will be tricky

https://github.com/kodadot/workers/pull/194

closed in kodadot/workers#194


$return not working for python kafka binding

I'd like to be able to return the result of my kafka event processor and avoid using func.Out if possible. I have a function.json which is setup like this:
{
      "scriptFile": "main.py",
      "bindings": [
        {
          "type": "kafkaTrigger",
          "name": "kevent",
          "topic": "%InputTopicName%",
          "brokerList": "%BrokerList%",
          "username": "%ConfluentCloudUserName%",
          "password": "%ConfluentCloudPassword%",
          "consumerGroup" : "%ConsumerGroup%",
          "protocol": "saslSsl",
          "authenticationMode": "plain"
        },
        {
          "type": "kafka",
          "direction": "out",
          "name": "$return",
          "topic": "%OutputTopicName%",
          "brokerList": "%BrokerList%",
          "username": "%ConfluentCloudUserName%",
          "password": "%ConfluentCloudPassword%",
          "protocol": "saslSsl",
          "authenticationMode": "plain"
        }
    ]
}

And my code looks like this:
from azure.functions import KafkaEvent
import json

def main(kevent: KafkaEvent) -> str:
    event = json.loads(kevent.get_body().decode("utf-8"))
    message = json.loads(event["Value"])

    print(message)

    return message

Note the "name": "$return", in the kafka output binding. Running this with func start --python, I get these errors:
[2022-07-19T20:37:41.386Z] Executing 'Functions.formatter' (Reason='(null)', Id=cb9b2351-f72c-4862-8b1e-b544c6455220)
[2022-07-19T20:37:42.426Z] Executed 'Functions.formatter' (Failed, Id=cb9b2351-f72c-4862-8b1e-b544c6455220, Duration=1039ms)
[2022-07-19T20:37:42.427Z] System.Private.CoreLib: Exception while executing function: Functions.formatter. System.Private.CoreLib: Result: Failure
[2022-07-19T20:37:42.427Z] Exception: TypeError: unable to encode outgoing TypedData: unsupported type "<class 'azure.functions.kafka.KafkaConverter'>" for Python type "str"
[2022-07-19T20:37:42.427Z] Stack:   File<EMAIL_ADDRESS>line 434, in _handle__invocation_request
[2022-07-19T20:37:42.427Z]     return_value = bindings.to_outgoing_proto(
[2022-07-19T20:37:42.427Z]   File<EMAIL_ADDRESS>line 150, in to_outgoing_proto
[2022-07-19T20:37:42.427Z]     datum = get_datum(binding, obj, pytype)
[2022-07-19T20:37:42.427Z]   File<EMAIL_ADDRESS>line 108, in get_datum
[2022-07-19T20:37:42.427Z]     raise TypeError(
[2022-07-19T20:37:42.427Z] .

After some investigation, it seems this happens because KafkaConverter.encode always raises NotImplementedError('Output bindings are not supported for Kafka'), which obviously isn't true, right? The output binding works perfectly well when I use a func.Out variable, why can't it handle an $return?

Hi @vrdmr could you please help with this issue?

@shrohilla - Could you please take a look at this issue?

@nicholas-ebert is this a feature request or a bug?

@nicholas-ebert is this a feature request or a bug?

Based on the fact that this seems to be completely unsupported currently I suppose it's a feature request. But if this feature isn't intended to be present it'd be great if this was made more obvious.
Since $return is used by other output bindings it's not crazy that someone would try with the kafka binding, and the error that gets generated above is not obvious to the issue at all.

@shrohilla - Could you please take a look at this issue? And if can this be supported or not?


Add support for php8

Thanks very much for this. Much appreciated

Thanks very much for this. Much appreciated


Libev

Blackduck scan failure details
Summary: 0 violations, 0 files pending approval, 2 files pending identification.

Protex Server Path: /home/blackduck/github/rbus/94/rdkcentral/rbus

Commit: ead07c7627242ad9e309781b63eacb9844adbcc1

Report detail: gist

WARNING: A Blackduck scan failure has been waived
A prior failure has been upvoted

Upvote reason: Approved and id'ed in the tool

Commit: ead07c7627242ad9e309781b63eacb9844adbcc1


add optional hyperlink for program option sections, add subheadlines

Scope & Purpose
Small improvements for program options documentation:

add optional hyperlink to program option sections, so that one can link to our docs
add optional subheadlines to program options, so that it is possible to add better grouping

This is experimental and may not be followed to the end.

[ ] :hankey: Bugfix (requires CHANGELOG entry)
[x] :pizza: New feature (requires CHANGELOG entry, feature documentation and release notes)
[ ] :fire: Performance improvement
[ ] :hammer: Refactoring/simplification
[x] :book: CHANGELOG entry made

Backports:

[x] No backports required

Testing & Verification

[x] This change is a trivial rework / code cleanup without any test coverage.
[x] The behavior in this PR was manually tested

Link to Jenkins PR run:
http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/14048/

Tests blue

http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/14059/


Standardize bucket names

Changes
Renaming the schema bucket environment variable so that it matches the survey runner one.
How to test

Run this branch
Check the application still works

Who can test
Anyone apart from @warrenbailey

This didn't work for me although I am having problems with the author app generally.  Can we go through this together?

It doesn't change any functionality just the environment variable name (which doesn't need to be set locally) so it should work. Happy to go through it together, sounds like your author application might not be set up correctly.

After trying to figure out what the unhelpful error message I was getting with this most of the day (between meetings , anyway) I think it's an issue either with the node build script or the documentation...
In any case, running npm run compile did the compilation and allowed me to run the app locally where I couldn't before.
Happy to merge this, once it's been rebased

Rebasing


Add Russian translation and README

Thanks for translating the README and the app!
Please wait a little longer for the next version to be released to reflect the translation of the app.

Oops, the link in the README to Russian wasn't working, so I'll fix it on my end. :ok_hand:


No more master

I have:

Changed this repo's default branch to be main under settings.
Updated our netlify settings at netlify.com to use main instead of master.
Updated all our files (see changes in this PR).
Once this PR is merged I'll delete the master branch.

There are a few guides online with tips, here's one: https://jarv.is/notes/github-rename-master/

Let's do it! Do you need to do anything to bring in the changes from #1060 since that was merged into master?

Yeah I'll pull them over and then merge this one.


python3Packages.survey: refactor

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 312275 run on x86_64-linux 1

8 packages built:

maestral (python311Packages.maestral)
maestral-gui
maestral-gui.dist
maestral.dist (python311Packages.maestral.dist)
python311Packages.survey
python311Packages.survey.dist
python312Packages.survey
python312Packages.survey.dist


Fedora packaging and QEMU forks

So, I've taken up packaging kata containers for Fedora. I'm looking at qemu-lite and qemu-vanilla packages. So, IIUC, those are forks of QEMU, correct?
Have we checked to see if the default 'qemu' package could be used/extended to suit kata containers?
Just that forking sounds like trouble unless real good reason.
(I'm both a QEMU and a Kata n00b, and I'll probably have more questions as we go, so please be gentle :) )

Hi @lsm5 - Welcome to the project! :smile:
OK, deep breath...
qemu-lite is "vanilla qemu + a set of patches" where those patches are designed to speed up boot and reduce memory consumption:

https://github.com/kata-containers/qemu/commits/qemu-lite-2.11.0
https://github.com/kata-containers/packaging/blob/master/qemu-lite/_service-template

However, the difference between qemu-lite and qemu upstream is now pretty small as most of the patches have been accepted upstream. For that reason, we also have a qemu-vanilla package which is just the upstream + a single patch to fix the configure script I believe:

https://github.com/kata-containers/qemu/commits/stable-2.11
https://github.com/kata-containers/packaging/blob/master/qemu-vanilla/_service-template

We are also looking at providing a static build (see https://github.com/kata-containers/packaging/issues/66) but I'm not sure if that would be for qemu-vanilla or qemu-lite (or both) at this stage. Can you comment @devimc, @jcvenegas, @egernst?
Since Kata works with a vanilla qemu, it should also work with the distro-packaged version of qemu, but there may be performance / memory density differences which @grahamwhaley may have information on.
/cc @Pennyzct, @nitkon.

btw, you might want to run through our existing Fedora install guide to get a working system installed so you can have a play around with it:

https://github.com/kata-containers/documentation/blob/master/install/fedora-installation-guide.md
(I'd recommend choosing the docker option at the end of that doc for simplicity+speed :)

cc @Weichen81

Hopefully it won't be too bad as we already have a spec file:

https://github.com/kata-containers/packaging/blob/master/obs-packaging/qemu-lite/qemu-lite.spec-template (note the use of the configure-hypervisor.sh script in there to generate the build options).

Clear Linux also has a spec file (just to build - it doesn't actually use rpms as part of the distro):

https://github.com/clearlinux-pkgs/kata-qemu-lite/blob/master/kata-qemu-lite.spec

/cc @jcvenegas, @egernst.

@jodh-intel ah yup, sorry I was under the impression that packaging of forks was a problem to begin with, but seems I was mistaken. As long as the fork doesn't conflict in any way with the default package, we should be good to go.
I've been working on the qemu-lite spec file, and make fails complaining about some files not being found. Is this a good place to discuss those, or should I open a new issue on the kata qemu fork (The issue tracker isn't enabled there btw)

Here is prolly the best place. Yeah, we are careful to ensure qemu-lite and qemu-vanilla are co-installable with the distro-packaged version of qemu.

So, if I used the source tarball from https://github.com/kata-containers/qemu/archive/6ba2bfbee9a80bfd03605c5eb2ca743c8b68389e/qemu-6ba2bfb.tar.gz it would give me compilation errors (fatal error: input-keymap-linux-to-qcode.c no such file or directory). But when I used the tarball extracted from the OSBS srpm, it seemed to build just fine.
So, could you please tell me if there was anything additional done to generate the tarball that's used in the OSBS srpm? This is mainly just for my understanding to trace things back to git.
My updated spec file is here

Any thoughts on ^ @jcvenegas?

Also, is this currently x86_64 only? Koji build failed for all other arches.

Yes, we're waiting for others in the community to help out with other architectures.
/cc @Pennyzct, @nitkon.

@lsm5  sorry for the delay about missing files.
The OBS build is cloning the qemu git repository and in the clone is downloading the sub-modules. To build qemu with options we use qemu require two submodules.
https://github.com/qemu/capstone/archive/22ead3e0bfdb87516656453336160e0a37b066bf.tar.gz
https://github.com/qemu/keycodemapdb/archive/10739aa26051a5d49d88132604539d3ed085e72e.tar.gz
To allow this in systems like koji you could add them as source 1 and 2.
Clear Linux already did something similar:
https://github.com/clearlinux-pkgs/kata-qemu-lite/blob/master/kata-qemu-lite.spec#L10

@jcvenegas ack, that helps, thanks a lot!

@lsm5 is this issue now solved, let me know if you have more questions related with this or the packaging of any other component.


Mark task as failed if OOMKilled.

Changes
Fix for #1806 - identifies OOMKilled as failure (despite exite code 0)
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[X] Includes tests (if functionality changed/added)
[ ] Includes docs (if user facing)
[X] Commit messages follow commit message best practices

Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.
Release Notes
Fix for #1806 fail tasks that are killed with OOM.

/ok-to-test

I think we may want to document this behaviour[1]? I'd say probably in taskruns.md
[1] exitCode==0 + OOMKilled == FAILURE

/lgtm


Adaptive Card Localization Problem for Date in WebChat

Hello everyone, I give the link to the topic that I previously opened in the /BotFramework-Composer section.
You can review it in more detail here: https://github.com/microsoft/BotFramework-Composer/issues/6586
My problem is that there is a calendar in the adaptive card and I am trying to get the person to choose a date from here. But I observe this date as null on webchat. Actually, I think it is relevant to the platform being worked on, regardless of webchat and emulator. When I run my bot on a platform with the local language setting en-US, for example Edge, there is no problem, but when I try it with Firefox, the browser's local language setting is tr-Tr, my bot does not work. You can view screenshots below or read the previous location.
I will be grateful if you could help me.
Adaptive Card:

Value is null:

Composer View:

Thank you for the report, @formore5points. Please post text instead of just screenshots so that we can attempt to reproduce the problem. Thank you.

@v-kydela If you have time, it might be good to try the calendar action and verify that the dates work. That way when the customer replies with the action text we can debug quickly.

@GeoffCoxMSFT - Thanks, but I don't know that we'll be able to debug at all if the customer is unresponsive
@formore5points - Are you still working on this?

@v-kydela Hello, yes I was working but I solved this one with using activity. In no way, I could not get input using date time. Value part was empty due to localization problem. That's why I give the input I want to get as a response in the last part of the dialog and capture it by using activity from turn.activity. I hope that has been revealing. Thank you so much.

@formore5points - I'm glad you got your issue resolved


[WIP] Include field names in rendering of Product (Scala 2.13 only)

As requested in #4.
This is only available in Scala 2.13 because it makes use of productElementNames. The behaviour is unchanged in Scala 2.11/2.12.
Unfortunately it's a bincompat-breaking change because it extends the Tree ADT. Not sure how amenable you are to that.
The tests need to be updated because pprint's output is now different in Scala 2.12 vs 2.13. @lihaoyi do you have any preference regarding how I handle different Scala versions in the tests?

I could have separate test/src, test/src-2.11, test/src-2.12 and test/src-2.13 directories (I assume Mill supports that convention for test directories as well), but that might require a bit of refactoring of the tests if we want to avoid a lot of duplication.
Or I could add conditionals in the test code, along the lines of if (scala213) { assert(...) } else { ... }, but that could get pretty ugly.

EDIT: Sorry, this was supposed to be draft PR. Apparently it's not possible to change a normal PR to a draft.

Recently, I've seen a link on my PRs to switch to draft mode, for which I'm grateful because I always forgot to. (I wound up here by following the case class toString speculations from scala/scala.)


Remote cloud translations

Support connecting to a remote LibreTranslate server for translations you don't have locally.

It would be cool to have a small independent Python library (a simple module around requests?) that can do this, then simply import it into argos.

That would also make it easy for folks to run Argos on a fairly powerful server remotely, but send requests from a less powerful machine over a VPN connection.

This probably makes the most sense as LibreTranslate Python bindings similar to what exists for Rust and C#.

Done!
https://github.com/argosopentech/LibreTranslate-py


Notification's sound and vibration does not play when being inside a phone call

Expected Behavior
Play sound even if the phone call is running...
Vibrate
Actual Behavior
When having a phone call, the notification does not play any sound.
It's does not vibrate at all
Reproduce Scenario (including but not limited to)
Using a smartphone start a phone call and push the notification, you'll see that you'll not hear the notification voice nor feel the vibration.
P.S. The vibration never trigger in all the cases.
Steps to Reproduce
    1.  Start a phone call
    2. Push the notification, using the sample code that can be found below.

Platform and Version (eg. Android 5.0 or iOS 9.2.1)
Android  6.0
(Android) What device vendor (e.g. Samsung, HTC, Sony...)
Samsung Note 5
Cordova CLI version and cordova platform version
cordova --version
 6.3.0
cordova platform version android
android 5.2.2

Plugin version
phonegap-plugin-push 1.8.0 "PushPlugin"
Sample Push Data Payload
N/A
Sample Code that illustrates the problem
             data: {
                   sound: "default",
                   title: "New",
                   alert: "This is a new notification !",
                   soundname:"ringtone",
                   vibrate:true,
                   vibrationPattern: [2000, 1000, 500, 500],
                   priority: 2,
                   visibility: 1
               }

Logs taken while reproducing problem
N/A

@HamzaLJ I'm pretty sure this is a setting in the Phone app of your device. IIRC there is a setting in the app to determine whether or not notification sounds are played during a phone call.

@macdonst you maybe right, but the thing is that it does not even Vibrate, nor trigger the vibration pattern.

@HamzaLJ yeah, that is a setting on your phone. It would be really annoying if the phone started vibrating in your hand while you had it plastered to your ear. Did you check the Phone app's settings?

@macdonst I've already tried all the settings, none works.
A good example of what I want to reach is "Facebook Messenger" when someone calls you on it, the phone rings and vibrate with pattern, you can try it out.
So, far I was not able similar result, and I am still stuck.

Closing, inactivity. Please comment/re-open if you have more details.


Switch column introspection to use sp_columns instead of cursor.columns

I found cursor.columns to be less than reliable in returning any results. The sp_columns returns the exact same data, and in local testing, was reliable 100% of the time for ~520 tables.

Please rebase this against master and provide any reproducable tests if possible

Please rebase this against master and provide any reproducable tests if possible


/hidden

Description of the feature, modification, idea or suggestion
I know about option "start hidden", but I need also command line parameter "/hiden"
Proposed implementation details (optional)
No response

Why?

for example, using with .lnk
and btw where can i read about all command switches?

Oh right sounded like you were requesting something else.

using with .lnk

-hide to start minimized

where can i read about all command switches

-help to view the options. This was also posted on the forum which is currently offline.

...the forum which is currently offline.

Is it possible to use gitter or Matrix for this kind of general q&a?

@Biswa96
This is why we have discord: https://discord.com/invite/k2MQd2DzC2
and discussions: https://github.com/winsiderss/systeminformer/discussions