Improve the way Meilisearch handles high volumes of search requests

When a large number of search requests are sent in quick succession, Meilisearch tries to process them all as quickly as possible, simultaneously. This can cause a couple of issues:

Since each search request can consume a significant amount of RAM, executing too many requests simultaneously causes the meilisearch instance to exceed its memory budget, and therefore possibly get shut down.
Executing many search requests at once will cause each of them to be resolved much slower, as there is too much competition for CPU resources. This can bring the instance down to a crawl and prevent it from returning any search result in a reasonable time frame.

Therefore, Meilisearch is not only vulnerable to denial of service attacks, its performance can also degrade significantly and for an extended period of time after a sudden surge of traffic.
The goal of this issue is to think of ways to handle high volumes of search request such that Meilisearch:

always stays within a certain memory budget
handles sudden surges of search requests elegantly
recovers from these surges quickly

There are multiple ways to tackle this issue.

through solutions outside Meilisearch. For example, using proxies, rate-limiting of requests from each IP, etc. (I don't know much about this)
through general improvements in search RAM usage and latencies, tracked by https://github.com/meilisearch/meilisearch/issues/3111
through rate-limiting and timeouts implemented by Meilisearch itself

I'd like to propose a particular strategy on Meilisearch's side to deal with this.

We limit the number of search requests that can be simultaneously executed. This number of allowed simultaneous requests is given by a constant determined either programmatically or given by the user.
We create an explicit backlog of search requests. When Meilisearch receives a search request which it cannot begin processing immediately, the request goes into the backlog.
We limit the maximum size of the backlog to an arbitrary number. If a search request cannot be added to the backlog because it is full, we drop it.
We also limit the amount of time that a request can stay inside the backlog to an arbitrary duration. For example, if a search request has been sitting in the backlog for two seconds, we drop it too.
Finally, we also prevent individual search queries from taking too long to execute. If, after a certain arbitrary duration, a search query still hasn't been resolved, we either drop it or return less relevant search results.

For example, let's imagine that 10,000 simultaneous searches are sent to a single Meilisearch instance.

The first, say, 20 requests are accepted and start executing right away
The remaining 9,980 are sent to the backlog
The backlog, due to its arbitrary size limit, only accept 5000 queries. The remaining 4980 are dropped immediately.
After two seconds, maybe 400 search queries were resolved, but 4600 remain in the backlog. Since these queries have been sitting in a backlog for too long, they are also dropped.
The meilisearch instance, after two seconds, is back to normal and ready to accept new requests

Thanks, @loiclec! I would also like to bring some thoughts.
The idea of the backlog described here seems to be close to a server connection pool. Actix operates a back-pressure logic from the connection pool.
Maybe it's possible to define a maximum number of buffered requests at actix level 🤔. (I didn't check). In that case, I imagine that if the connection pool has a limit of X, as soon the X+1th request arrives, it's rejected by the server with a customizable HTTP code. e.g. 503 HTTP code
Ideally, this could solve the need for a custom internal buffer.
Now, it does not solve everything; a client alone could fill this connection pool. A Rate-limiter could help to be defensive against that.
It could be worth taking a look at https://github.com/TerminalWitchcraft/actix-ratelimit
It doesn't solve everything; there are still the requests (that have passed the actix entrance layer) that can explode the RAM consumption because the process is too greedy / poorly optimized.
An immediate impact seems reachable by introducing a search query timeout. Ideally, already-matched search results are returned to the client when the timeout is reached. (That timeout could be customizable by the developer).
We could also consider informing in the body or the headers of the search response that this request has ended before so that the developer decides whether or not to display this information to the end user.
I'd love to hear your thoughts (@meilisearch/engine-team) on this suggestion when you have the time!

Thanks for opening this, @loiclec!
I don't really have thoughts that are specific to the subject at hand, but more general ones about the kind of topic this is: every web application in existence that wants to scale and remain in prod has to consider the topic of backpressure and how to handle high volumes of requests.
So my first thought is that there ought to be extensive literature on that topic and that we ought to be looking at it before coming to decisions of our own.
I think it would be good if we could maybe separate various use cases that could lead to the overload of a meilisearch instance because the solution to apply is maybe different:

A meilisearch instance is overloaded by many various requests from "legitimate" users due to high volume traffic.
A meilisearch instance is overloaded by many various requests from malevolent users in a DDoS attack.
A meilisearch instance is overloaded due to a small number of requests that are taking especially long (or taking a lot of memory), made by legitimate users
A meilisearch instance is overloaded due to a small number of requests that are taking especially long (or taking a lot of memory), willfully forged by malevolent users in a DoS attack.

Off the top of my head I have the following ideas to investigate:

Fully externalize scaling via horizontal/vertical scaling: Give the responsibility to our user to scale by putting meilisearch instances behind an Nginx or AWS load balancer, or buying a bigger machine. Of course in this scenario, it is better if we can handle meilisearch instance replication so that the user isn't responsible for it, meaning in that scenario we'd probably want to decouple the indexing from the search instances. Cloudflare and similar solutions also provide protection against the specific scenario (2) of DDoS.
Handle backpressure at actix level: I think the links of @gmourier are probably a good start to do that, would be nice to be looking at how other actix applications use them in practice or even big applications written in other web servers (Django web framework for example).
Handle backpressure at the engine level: the most bespoke way, but also the one with the most information about why a particular request is taking time. I think I have read somewhere that back pressure is best handled at the applicative level but I can't find a reference on this so don't @ me on that!

I think Yoshua Wyuts had an interesting blog post on some of the available functions of the async ecosystem for throttling and delaying. Also, a bit short, but the section of the tokio tutorial on back pressure (TL;DR, use channels).
Since there is a RAM component, a way to monitor the RAM consumption (or a proxy variable for that amount) of an individual request and terminate high-consuming requests first when RAM is scarce would be good I guess (how to detect this condition might be non-trivial though).
I realize I don't have many pointers at this time, but I'd say handling bursts of requests gracefully is an important support function that we need to carefully investigate before diving into.

Hello @gmourier,
Here are my points about this discussion:

We limit the number of search requests that can be simultaneously executed. This number of allowed simultaneous requests is given by a constant determined either programmatically or given by the user.

This first part is just a middleware to add and configure so it would be easy to implement it for v1. Therefore you have a lot of compatible middleware to do the job like governor that has several advantages:

A burst size per IP address allowing users to make more requests at the start but limiting them if they request Meilisearch for a long time in a row.
A compatibility with extractors allowing us to change the rate-limiting depending on the API-key/tenant-token in the future

The issue is that we are a "search as you type" engine and so the last request of a same user may be dropped in favor of the previous one due to the rate-limiting, and so a search result could be irrelevant compared to the last query sent by the end-user. It would be perfect if we could keep only the last query made by each user. 😬
The second issue is that it will limit the number of requests per user, but, if you have a lot of different IPs for a few queries per IP, then this would not be efficient.

We create an explicit backlog of search requests. When Meilisearch receives a search request which it cannot begin processing immediately, the request goes into the backlog.
We limit the maximum size of the backlog to an arbitrary number. If a search request cannot be added to the backlog because it is full, we drop it.
We also limit the amount of time that a request can stay inside the backlog to an arbitrary duration. For example, if a search request has been sitting in the backlog for two seconds, we drop it too.

I may be wrong, but, I think this corresponds to reimplementing our own rate-limiting middleware! The good news is we have a lot of examples, however, we'll have to implement it for v1 and maintain it in the future.
So if someone already has implemented a middleware before, I'd like his insights about the time it would take. (@Kerollmops or @dureuill?)

Finally, we also prevent individual search queries from taking too long to execute. If, after a certain arbitrary duration, a search query still hasn't been resolved, we either drop it or return less relevant search results.

This one is easy to do but I don't think it would solve the RAM consumption issue.
I already made a POC of this:
https://github.com/meilisearch/milli/pull/389
THat's all I have so far.

So if someone already has implemented a middleware before, I'd like his insights about the time it would take. (@Kerollmops or @dureuill?)

I already implemented middleware, but in Django (and maybe Rocket I believe?). The time taken will depend on the specifics of the middleware we implement (are we integrating an off-the-shelf middleware, or are we starting from scratch?) and how hard it will be to validate. Because the middleware is a cross-cutting piece of the server, we will need to watch out for unwanted side effects on various routes (and how it interacts with e.g. authenticated users). For this specific middleware, we will also need some testing and fine-tuning (maybe in various end-user workloads?) to ensure that we do not accidentally deteriorate availability by being too eager in refusing requests and that we indeed improve the situation with regard to query bursts.
All in all, I don't think the implementation of the middleware itself is going to take a lot of time (I'd say 3-4d max), but the specification (defining what constitutes a reasonable protection) and validation might.

We can explore these topics experimentally and set a flag to disable or configure them quickly. We can check if they work well enough in most cases before acting on an eventual stabilization.
I think we can ask our users to be proactive with us on this to help since it's a critical topic.

We did a meeting with @ManyTheFish and @loiclec last week and thought about the most efficient way of tackling this issue. Here are the steps we planned together:

Introduce a basic Rate-Limiter. It must be correctly set up and not rate limit on the IP but as globally rate limited. We will improve it later but we can start by using https://github.com/AaronErhardt/actix-governor.
Find a way to limit the number of search requests running in parallel.
Searches are CPU intensive and consume a lot of memory, we must find a way to limit that.

Hello :wave:, so I took some time to make a small survey of rate limiting in other projects (open source, competitors, SaaS, ...), so here's what I got:

On-premise open-source projects tend to implement some form of rate limiting. Zulip, Mattermost (albeit it is an Enterprise feature), GitLab, Lemmy, Mastodon.
SaaS understandably have rate limits, but at which level they are implemented is unknown (could be at the proxy layer): Elastic Cloud, GitHub.com, Algolia
A common issue appears to be caused by IP-based rate limiting, especially due to instances running behind a reverse proxy. These instances always see the IP of the proxy for all incoming requests, accidentally making the rate-limit global to all users. OTOH when there is no proxy, IP-based rate limiting is a good first line of defense.
Some services, such as Mastodon and the SaaS hardcode the rate limits.
Whether hardcoded or not, all values I see are one to two orders of magnitude lower than what I thought would be useful without being too restrictive for Meilisearch: e.g. 5000 requests per hour for all authenticated requests on GitHub, 10 queries per second before throttling and 100 queries before rejecting queries on Mattermost, 300 requests per minute on GitLab.
A perceived issue with fixed windows to limit the available number of requests is that while it does limit the number of average requests, the requests can be grouped at the end of the window in a burst, and then again at the beginning of the next window. For bigger windows (hours, minutes), this can create an unwanted load. Fortunately, actix-governor does not replenish entirely the request count at the end of the window, but rather it gives back only one request, gradually recovering the number of requests that can be made.
x-ratelimit- headers seem to be somewhat common, but definitely not standard: X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset on Mastodon and Zulip, x-ratelimit-interval, x-ratelimit-remaining, x-ratelimit-limit for Elastic Cloud. Actix governor allows adding headers, although their name and granularity cannot be configured.
I found surprisingly few rate limits that can be configured. Mattermost has an extensive configuration (enabling, throttle/burst, total number of users, rate limiting by origin (IP, IP header, user)), GitLab has a very granular one (allowing to set a limit for basically each endpoint, but the origin and window size cannot be configured). Zulip is configurable with the following default options, allowing to configure burst per origin (there is no global limit).
Algolia does not seem to limit the number of search queries (instead they will return degraded search results)

To me, this survey raised more questions than it gave answers. Here's a list of the open questions:

Which origin(s) should we limit?

Global: Easy to implement, but this will limit globally the number of concurrent searches, and, by proxy, users. Global limits were rare in the surveyed applications.
IP: Often chosen as the default solution, but will cause trouble if the instance is behind a proxy.
API key: The best solution when users have individual API keys. Not so well when the frontend is using a single API keys shared between all users.

Should we apply the limit only to the search or also to indexing? If the latter, should there be different limits for the search and indexing? My understanding is that in the current model we trust the person doing the indexing, so rate limiting is not necessary for indexing at this point.
How many requests should a user have in their pool? How long should the cooldown be?
Same question for the global limit?
Is the pool/cooldown model a good one, especially for the global limiter? With a big pool, there could be effects where a previous burst of requests causes
Can we implement throttling (the "search backlog") instead of directly rejecting queries when the pool is empty? Actix-Governor doesn't appear to support throttling, meaning we can use it for burst, and then we need to implement another solution for the throttling. The sad part is that as Actix Governor is apparently not allowing us to peep the remaining tokens in the pool for a given key programmatically we cannot reuse it to implement throttling effectively.

Answered questions are the following:

The solution should expose whatever headers Actix Governor allows us to.
The solution should be configurable in the following way:

Enable/Disable rate limiting globally
Configure whether enabled, the pool, and the cooldown per origin: global, IP, API keys (should we allow a different configuration depending on the API key?)

The default configuration should be sensible: effective to protect a Meilisearch instance, but not too limiting. For how to achieve that see open questions above 😅

Opened an experimental PR to add a rate limiter based on Actix-governor: https://github.com/meilisearch/meilisearch/pull/3283

I'm very interested in this subject (I learned a lot with all the comments) and would like to add my 1cent contribution 🪙 😄.
If we introduce a rate-limiting, aren't we trying to fix an issue by creating another potential issue?
Because as far as I get it, if we could scale horizontally, we would be able to share that workload with multiple instances and may never hit a degraded performance (if you have an auto-scaled k8s cluster, for example). It may be a more interesting idea to go directly for the https://roadmap.meilisearch.com/c/24-high-availibility approach.
Our users probably have a lot of different use cases, and it could be challenging to find the correct limits we should go for (even if they are dynamic somehow).
Although I like the idea of having an extra layer of protection on the meili side (for small users), we are already recommending the users use a proxy when putting Meilisearch in production https://docs.meilisearch.com/learn/cookbooks/running_production.html#step-5-secure-and-finish-your-setup.
In previous experiences, we handle a 500 reqs/s workload with multiple instances of the same rails app in an auto-scaled k8s environment with Cloudflare CDN in front of everything. We never had issues with DDoS since Cloudflare took care of that for us, and we just had to ensure all the non-cached requests were processed in a reasonable amount of time.
To summarize:
Could it be better to let other specialized tools protect us against those potential breaches since they have more experience (or just were made for it)?

@brunoocasali, while I agree with some of your points, I believe that ensuring the serenity of our users should be our top priority, no matter what we propose or implement.
It is true that handling higher traffic could be achieved by replicating and sharding our servers, but we should also be aware that higher traffic could be malicious and that it is our responsibility to protect our users.
As a service, we are entrusted with charging our users, and we should keep in mind that Meilisearch is often used directly in the frontend without additional latency. Therefore, it is crucial that we also take the necessary measures to secure our users' bills and prevent any potential attacks.
While it may be argued that this could be handled by a proxy or another tool in our cloud offering, we should consider the cost of not having it directly on the engine to ensure the trust of our users. A user who has been attacked and has to be reimbursed for their bill will be unhappy and less confident in using Meilisearch. From their point of view, it is our responsibility to protect them, and it is normal for them to expect us to do so.
In conclusion, indeed, in our cloud offering, it could be handled by our proxy or another tool. But what is the real cost of having it on the engine to ensure the trust of our users? It is up to you to tell me.

Hey, @qdequele sorry for the humongous delay!
I agree with everything you said. My point is more about the potential investment of time in developing a feature that can easily go down a rabbit hole.
To my way of thinking, trying to implement something simple can bring some complications like:
PS: (by match-making, understand the algorithm responsible for checking what is a valid or invalid request)

we adopt simple match-making and end up being ineffective
we adopt simple match-making and end up affecting requests from real users

What would it mean if we improved this match-making process to something more complex, which would lead to new problems like those mentioned above; then we would have to think again and implement changes in this match-making. Do you understand what I'm getting at?
Not to mention customers who may require special changes for their use cases, causing more changes to support customizations.
So, what I see on this side of the table is that we can end up investing a lot of time in something that is not our core business (at first, I believe so) and that we could redirect that burden to someone who has dealt with all these scenarios before (cutting like that, a good part of the way).
In any case, I ok with whichever decision the team made, but I felt it necessary to mention this question before being too late.


Different content on the same version (master branch vs npm)

Hi guys,
following this issue
https://github.com/jonathantneal/sanitize.css/issues/133
I noticed that sanitize.css marked as 5.0.0 is not the same I get from npm, marked as 5.0.0 as well
Particularly refer to
button,
input,
select,
textarea {
        background-color: transparent;
	color: inherit;
	font-size: inherit;
	line-height: inherit;
}

Where
background-color: transparent;
was found on npm and not on your master branch.
Is there anything I'm doing wrong?

UPDATE:
even installing with yarn add https://github.com/jonathantneal/sanitize.css#^5.0.0 I received content I didn't expect.
yarn add https://github.com/jonathantneal/sanitize.css#master indeed gets what I want.

News on this?

If this is still an issue, I will correct this in the next release.

This seems to be an issue again. I have tried the following install options:

yarn add sanitize.css
yarn add<EMAIL_ADDRESS>
In both cases the file that I get is sanitize.css v7.0.3 and not v^8.


Broken Images in Gallery

There seem to be a lot of broken images in the Module Gallery.

Thanks, good catch. Apparently graphviz is breaking on the name of one of the states because it contains a <. We'll have to escape those.

In the interim, please browse modules here: https://synthetichealth.github.io/module-builder/

Temporarily fixed by removing the <


Project Collider Initialization

The colliders for the project need to be completed in a way that they can recognize all of the items within the scene to prevent issue like happened with DefaultWeapon. One of the Phaser examples (https://github.com/acushlakoncept/phaser3-game) listed on the official website makes use of other files to handle colliders, this may be a good reference to see if similar logic can be used to pass the roadblocks for LevelTwo.js.

[x]  Create a collider file for the PlayerProjectile so that it collides with an enemy classes hitbox and is destroyed.
[x] The PlayerProjectile should be destroyed upon colliding with world bounds.
[x] The PlayerProjectile should deal 1 hitpoint worth of damage whenever it collides with an enemies hitbox.

This will be closed by commits from a soon to be opened pull request, although following a different structure than what was originally planned in this issue from the Summer of 2024.


Nit: Naming consistency

The various names used across the project are not consistent and can be rather confusing. Could we standardize the naming conventions a bit - happy to help update once a convention has been established
Current references

Repository name: aws-application-networking-k8s
Docs site name: AWS Gateway API Controller
Chart name: aws-gateway-controller-chart
Namespace name: aws-application-networking-system
Service account name: gateway-api-controller
Policy name (from getting started): VPCLatticeControllerIAMPolicy

An example proposal

Repository name: aws-gateway-api
Docs site name: AWS Gateway API
Chart name: aws-gateway-api
Namespace name: aws-gateway-api
Service account name: aws-gateway-api
Policy name (from getting started): AwsGatewayApiController

Why aws-gateway-api?

The upstream convention is K8s/Kubernetes Gateway API
Avoids confusion with Amazon API Gateway by having the API after the Gateway

After some thought, I think the proposed names are too generic; something like the following might be more appropriate:

Repository name: aws-vpc-lattice-controller
Docs site name: AWS VPC Lattice Controller
Chart name: aws-vpc-lattice-controller
Namespace name: aws-vpc-lattice-controller
Service account name: aws-vpc-lattice-controller
Policy name (from getting started): AwsVpcLatticeController

Or if this project is meant to hold implementations for both VPC Lattice and ALB/NLB:

Repository name: aws-gateway-api
Docs site name: AWS Gateway API
VPC Lattice

Chart name: aws-vpc-lattice-controller
Namespace name: aws-vpc-lattice-controller
Service account name: aws-vpc-lattice-controller
Policy name (from getting started): AwsVpcLatticeController

ALB/NLB

Chart name: aws-load-blancer-controller
Namespace name: aws-load-blancer-controller
Service account name: aws-load-blancer-controller
Policy name (from getting started): AwsLoadBlancerController

Latest proposal:

Repository name: aws-application-networking-k8s -> aws-gateway-controller
Docs site name: AWS Gateway API Controller -> AWS Gateway Controller
Chart name: aws-gateway-controller-chart -> aws-gateway-controller (note: git tag can have -chart, but name of the chart should not have -chart)
Namespace name: aws-application-networking-system -> aws-gateway-controller
Service account name: gateway-api-controller -> vpc-lattice (will have others for alb, appmesh, etc. to map to IRSA/secret)
Policy name (from getting started): VPCLatticeControllerIAMPolicy -> AWSGatewayController-VPCLattice

Thank you for your suggestion! We really appreciate it. We will look into it and get back to you as soon as we can.


May I ask if there is a way to run Hyprland in wsl

Hyprland Version
无法运行
Bug or Regression?
Bug
Description
Unable to use Hyprland in wsl
How to reproduce
Running Hyprland in wsl
Crash reports, logs, images, videos
[lietu@lietu 93442]$ Hyprland
Welcome to Hyprland!
[LOG] Instance Signature: b784931e678f907b1f1e41d04485fefd8a1faaf8_1696340196
[LOG] Hyprland PID: 206
[LOG] ===== SYSTEM INFO: =====
[LOG] System name: Linux
[LOG] Node name: lietu
[LOG] Release: <IP_ADDRESS>-microsoft-standard-WSL2
[LOG] Version: #1 SMP Fri Jan 27 02:56:13 UTC 2023
lspci: Unable to load libkmod resources: error -2
[LOG] GPU information:
[LOG] os-release:
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
[LOG] ========================
[INFO] If you are crashing, or encounter any bugs, please consult https://wiki.hyprland.org/Crashes-and-Bugs/
[LOG]
Current splash: h
[LOG] Creating the HookSystem!
[LOG] Creating the KeybindManager!
[LOG] [hookSystem] New hook event registered: configReloaded
[LOG] Creating the AnimationManager!
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 14.07µs. Estimated average calc time: 0.04µs.
[LOG] Creating the ConfigManager!
[LOG] Creating the CHyprError!
[LOG] [hookSystem] New hook event registered: focusedMon
[LOG] [hookSystem] New hook event registered: preRender
[LOG] Creating the LayoutManager!
[LOG] Reloading the config!
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 5.96µs. Estimated average calc time: 0.02µs.
[LOG] Using config: /home/lietu/.config/hypr/hyprland.conf
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 5.67µs. Estimated average calc time: 0.03µs.
[LOG] Registered dynamic var "$mainMod" -> SUPER
terminate called after throwing an instance of 'std::runtime_error'
what():  wlr_backend_get_drm_fd() failed!
lspci: Unable to load libkmod resources: error -2
[CRITICAL] Hyprland has crashed :( Consult the crash report at /home/lietu/.hyprland/hyprlandCrashReport206.txt for more information.
Aborted (core dumped)

no


Clickhouse Collector- local variable 'response'

I have issue in connecting with Clickhouse, when I run
docker-compose -f docker/demo.yaml up -d odd-collector
nothing happen and in the log I got this error
odd-collector-1  | 2024-11-06 07:38:46.166 | ERROR    | odd_collector_sdk.collector:run:140 - local variable 'response' referenced before assignment
This is the configuration I used in collector_config
platform_host_url: http://localhost:8080
default_pulling_interval: 10
token: "FtxaHSiDSibuTIJGTsFA6rpihBKFy4uEOfvXMzEZ"
plugins:

type: clickhouse
name: clickhouse_demo
description: "demo" # Optional string
host: y2gdfztnob.europe-west4.gcp.clickhouse.cloud
port: 8443
database: public
user: default
password: 12345
secure: False
verify: True
query_limit: 0 # Optional string, default 0

Thank you @Sajjad12518 for opening the issue. The error message suggests that it was not a proper error handling. To fix this error handling we could use this https://github.com/opendatadiscovery/odd-collectors/pull/116
Once it’s released we could further investigate the root cause of the issue.
Thanks @ValeriyWorld for proposed changes.

Hello, @Sajjad12518. I have created a newer release of our sdk and generic odd-collector (to the 0.1.67 version). So you may update this one for improved error handling from the sdk side.
Also I have checked Clickhouse adapter. I can confirm that both - connecting to the Clickhouse as a docker service and as a cloud solution - works. I have managed to connect to the databases, run the collector and get the results in the Platform.
As of my investigation, that error massage that you have got may be caused by the wrong platform_host_url  configuration or even not running ODD Platform. Can you confirm, that the platform_host_url  is configured correctly and it is http://localhost:8080/ in your case?
If you are using Mac OS and run Platform in the docker, you should try http://docker.for.mac.localhost:8080, it could helps.


Possible to pass postcss options?

Is it possible to pass postcss options with postcss-loader, such as { map: true }?
I have a very simple stylus file, which creates two media queries (as a contrived example):
  @media only screen and (min-width: 321px)
    color lightcyan

  @media only screen and (min-width: 321px)
    font-size 24px

my webpack config file looks like this:
webpack.config.js
{
    module: {
        loaders: [
            { test: /\.styl$/,loader: 'style-loader!css-loader?sourceMap!postcss-loader!stylus-loader?paths=src' }
        ]
    },

    postcss: {
        defaults: [require('css-mqpacker')]
    }
}

When viewing the source map, the file contents shown are after css-mqpacker has run:
@media only screen and (min-width: 321px)
    color lightcyan
    font-size 24px

If I remove css-mqpacker from the post css defaults, the source map displays both media queries in the stylus file, as per the original source.
I've tried the same with autoprefixer too - it also shows the source file contents after autoprefixer has run and not the actual source.
Any ideas? I'm very new to webpack so my apologies if I've missed something obvious...

PostCSS has source map autodetect, so here we has problems not with a options.

Try to move css-loader?sourceMap before postcss-loader to take source map from Stylus. I think Stylus loader can set source map in wrong way and webpack didn’t see them to pass to PostCSS loader.

I tried swapping the order of css-loader and postcss-loader so that:
style-loader!css-loader?sourceMap!postcss-loader

becomes:
style-loader!postcss-loader!css-loader?sourceMap

This caused an error and the module would not build.
I've also tried using a plain old css file instead of stylus, and the source map refers to the output of postcss and not the source file (it's still wrong).
Any other suggestions?

css-loader returns javascript so you can not execute it before any related css stuff.
Your output in sourcemap is weird since it seems to be a mix of stylus / mqpaker (no { or :).

@MoOx - I know totally weird right - one or the other would make more sense.
I tried a different approach here:
https://github.com/at0g/webpack-css-sourcemaps/tree/gulp
This time gulp is being used to preprocess stylus and generate an external sourcemap.
The compiled css then goes to webpack (postcss-loader & css-loader).
In this configuration, postcss-loader works exactly as expected, so I'm going to close this issue.
Sorry about the red herring and thanks for the help.

I still face this issue with source-maps. Using extract-text-webpack-plugin, postcss, and sass.
The input map to postcss-loader is
{ version: 3,
  file: '/Users/boopathi.rajaa/workspace/phrontend/examples/hello-github/styles.scss',
  sources: [ '../styles.scss' ],
  sourcesContent: [],
  mappings: 'AAAA,IAAI,CAAC;EACJ,UAAU,EAAE,KAAM,GADb',
  names: [] }

and the output map of postcss-loader is
{ _file: 'styles.scss',
  _sourceRoot: null,
  _skipValidation: false,
  _sources:
   { _array: [ '../styles.scss', 'styles.scss' ],
     _set: { '$../styles.scss': 0, '$styles.scss': 1 } },
  _names: { _array: [], _set: {} },
  _mappings:
   { _array: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
     _sorted: true,
     _last:
      { generatedLine: 4,
        generatedColumn: 39,
        originalLine: 4,
        originalColumn: 39,
        source: 'styles.scss',
        name: null } },
  _sourcesContents: null }

and the file styles.scss is empty in browser.

@boopathi some of libsass versions had a problems with source map. What node-sass is used in your build?

node-sass - 3.1.1

I found a problem. Your webpack settings made sourcesContent empty.

In Sass and in PostCSS too. So browsers can’t show you anything in styles.scss

https://github.com/boopathi/extract-sass-test
I tried something, and got sourcesContent to work from node-sass using this option (https://github.com/boopathi/extract-sass-test/blob/master/sass-loader.js#L9)
Now sourceMap is generated, and the resultant sourceMap file contents match the original sass file, but the sourcemap itself is located in a different location - webpack:///styles.scss instead of webpack:///./styles.scss.

@boopathi show me please source map sources before PostCSS and after.

Oh. yeah.
Before:
sources: [ "stdin" ],
sourcesContent: [ "..." ]

After:
_sources: { _array: [ 'styles.scss' ], _set: { '$styles.scss': 0 } },
_sourcesContents: { '$styles.scss': '...' }

the full output: http://pastebin.com/MA7W0n0V

@boopathi why you think path should be webpack:///styles.scss?
I take file path by loaderUtils.getRemainingRequest(this). What is a best way?
https://github.com/postcss/postcss-loader/blob/master/index.js#L7
Anyway extract-sass-test use strange stdin. I think you should create a Issue in Sass loader too.

why you think path should be webpack:///styles.scss?

It should be webpack:///./styles.scss instead of webpack:///styles.scss.

The highlighted one (webpack:///./styles.scss) is mapped. The other styles.scss (webpack:///styles.scss) contains the original source.

I take file path by loaderUtils.getRemainingRequest(this)

The output of getRemainingRequest is like this
/Users/boopathi.rajaa/workspace/extract-sass-test/echo-loader.js!/Users/boopathi.rajaa/workspace/extract-sass-test/sass-loader.js!/Users/boopathi.rajaa/workspace/extract-sass-test/styles.scss

Shouldn't it be just the filename (this.resourcePath) ? But changing it to resourcePath too didn't do any good. The same issue was there.

Anyway extract-sass-test use strange stdin. I think you should create a Issue in Sass loader too.

@ai yes. But, I still can't figure out properly what the issue is. That's why I'm using a custom sass-loader (https://github.com/boopathi/extract-sass-test/blob/master/sass-loader.js) in extract-sass-test - which passes sourceMapContents.
Maybe what the css-loader receives is not proper ? Will experiment more.

@boopathi I am open for PR :)

@boopathi - I think that sass (and stylus) loaders are not generating sourcemaps correctly.
https://github.com/jtangelder/sass-loader/issues/92

@ai It works!. I overlooked the fact that original source should be available at webpack://./styles.scss cuz that's where the actual file is. But the styles are actually mapped to the other one properly, though it didn't happen when using !sass-loader?sourceMap. Looks like there is an option in sass-loader which does export the sourcemap contents that were not available for the postcss-loader.
css?sourceMap!postcss!sass?sourceMap&sourceMapContents


Mounting host directories on a running docker container

I believe that currently, to mount a host's directory to a docker container, you must do so when first running the container. However I sometimes find myself having to mount a different directory on the container once it is running but have to first stop it before mounting. Will this be fixed in the future?
Thank you very much for your time and for DOCKER!

Hi, @lrodri29 , thanks for your question. This does not appear to be a docs problem so I am going to close this issue.
Please ask your question in the forums: https://forums.docker.com/


[DISCUSSION] semver

Normal Semver is referenced here: https://semver.org/
Since normal semver is ehw, let's do one for us.
REAL-MAJOR.?.?.?.REAL-MINOR.WANNABE-MINOR.?.INCREMENTAL-RANDOM-NUMBER-
E.g. v<IP_ADDRESS>.<IP_ADDRESS>
Any suggestions? @erclu

I would suggest to change semver from REAL-MAJOR.?.?.?.REAL-MINOR.WANNABE-MINOR.?.INCREMENTAL-RANDOM-NUMBER- to REAL-MAJOR.?.?.?.REAL-MINOR.WANNABE-MINOR.?.RANDOM-FUNNY-NUMBER-

I would suggest to change semver from REAL-MAJOR.?.?.?.REAL-MINOR.WANNABE-MINOR.?.INCREMENTAL-RANDOM-NUMBER- to REAL-MAJOR.?.?.?.REAL-MINOR.WANNABE-MINOR.?.RANDOM-FUNNY-NUMBER-

We need to find what else to write in place of "?"

REAL-MAJOR.16-DIGITS-ON-THE-FRONT.EXPIRATION-MONTH.EXPIRATION-YEAR.REAL-MINOR.WANNABE-MINOR.THREE-DIGITS-ON-THE-BACK.RANDOM-FUNNY-NUMBER-
Could this work?

i think that all these proposals show a worrying lack of security by obfuscation, which is the best kind of security. I suggest calculating the sha512 of each value in the version string:
sha512(REAL-MAJOR).sha512(16-DIGITS-ON-THE-FRONT).sha512(EXPIRATION-MONTH).sha512(EXPIRATION-YEAR).sha512(REAL-MINOR).sha512(WANNABE-MINOR).sha512(THREE-DIGITS-ON-THE-BACK).sha512(RANDOM-FUNNY-NUMBER)-

also, each sha should be space-separated, not dot-separated, to improve readability:
sha512(REAL-MAJOR) sha512(16-DIGITS-ON-THE-FRONT) sha512(EXPIRATION-MONTH) sha512(EXPIRATION-YEAR) sha512(REAL-MINOR) sha512(WANNABE-MINOR) sha512(THREE-DIGITS-ON-THE-BACK) sha512(RANDOM-FUNNY-NUMBER)-

REAL-MAJOR.16-DIGITS-ON-THE-FRONT.EXPIRATION-MONTH.EXPIRATION-YEAR.REAL-MINOR.WANNABE-MINOR.THREE-DIGITS-ON-THE-BACK.RANDOM-FUNNY-NUMBER-
Could this work?

Ok, i just generate one let's use this:

Type
Digits

16-DIGITS-ON-THE-FRONT
5527232020091726

EXPIRATION-MONTH
5

EXPIRATION-YEAR
2026

THREE-DIGITS-ON-THE-BACK
369

i think that all these proposals show a worrying lack of security by obfuscation, which is the best kind of security. I suggest calculating the sha512 of each value in the version string:
sha512(REAL-MAJOR).sha512(16-DIGITS-ON-THE-FRONT).sha512(EXPIRATION-MONTH).sha512(EXPIRATION-YEAR).sha512(REAL-MINOR).sha512(WANNABE-MINOR).sha512(THREE-DIGITS-ON-THE-BACK).sha512(RANDOM-FUNNY-NUMBER)-

also, each sha should be space-separated, not dot-separated, to improve readability:
sha512(REAL-MAJOR) sha512(16-DIGITS-ON-THE-FRONT) sha512(EXPIRATION-MONTH) sha512(EXPIRATION-YEAR) sha512(REAL-MINOR) sha512(WANNABE-MINOR) sha512(THREE-DIGITS-ON-THE-BACK) sha512(RANDOM-FUNNY-NUMBER)-

No, then its too long. Let's follow the KISS rule. I can suggest to use SHA1 instead, but since semcurity is not our first priority, I would kindly suggest to not use any possible non-digits character.

So, our current version should be fixed to this: v0.5527232020091726.5.2<IP_ADDRESS>9.69
Next minor version should be something like: v0.5527232020091726.5.2<IP_ADDRESS>9.420

lmao gg wp
On Sat, Feb 5, 2022, 21:53 Mariano Sciacco @.***> wrote:

So, our current version should be fixed to this:
v0.5527232020091726.5.2<IP_ADDRESS>9.69
Next minor version should be something like:
v0.5527232020091726.5.2<IP_ADDRESS>9.420
—
Reply to this email directly, view it on GitHub
https://github.com/beeb89gang/TheMemeProject/issues/4#issuecomment-1030696977,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIFX6CVAEZ7W2KW5SBQ5FNDUZWE3RANCNFSM5NQAA27Q
.
You are receiving this because you were assigned.Message ID:
@.***>

hi
opening again the discussion

we will have
version <IP_ADDRESS>.<IP_ADDRESS>
then
<IP_ADDRESS>.<IP_ADDRESS>
then
<IP_ADDRESS>.<IP_ADDRESS>
and so on
Approved by

[ ] @enricobu96
[ ] @Jatus93
[ ] @erclu
[ ] @1dotd4
[x] @Maxelweb

What happen next? There will be new 6s and 9s coming? Maybe 420 for RC?
<IP_ADDRESS>.<IP_ADDRESS> ->  <IP_ADDRESS>.<IP_ADDRESS> ->  <IP_ADDRESS>.0.0.420.0 -> <IP_ADDRESS>.0.0.420.6 -> <IP_ADDRESS>.0.0.420.9 ->  <IP_ADDRESS>.<IP_ADDRESS>
Or is it like:
<IP_ADDRESS>.<IP_ADDRESS> -> <IP_ADDRESS>.<IP_ADDRESS> -> <IP_ADDRESS>.<IP_ADDRESS> -> <IP_ADDRESS>.<IP_ADDRESS> -> <IP_ADDRESS>.<IP_ADDRESS> -> <IP_ADDRESS>.<IP_ADDRESS> -> <IP_ADDRESS>.<IP_ADDRESS>  -> ... ?
Beause having just what you propose is too little for versioning ie.
<IP_ADDRESS>.<IP_ADDRESS> ->  <IP_ADDRESS>.<IP_ADDRESS> ->  <IP_ADDRESS>.<IP_ADDRESS> -> <IP_ADDRESS>.<IP_ADDRESS> -> ...


New option to open list URL from app

A preview feature so that we can see inside the lists from the app. If this is not possible, instead of copying the url, it should be opened in the browser when we click on the link.

Added on v2.11.0-beta.1. It will be available for everyone on the next stable release.

Added on v2.11.0.


Trigger CI Jobs in other Core Repos

Please describe your wishes and possible alternatives to achieve the desired result.
Upon release (I would say as part of https://github.com/scverse/anndata/pull/1626), we should trigger CI in other repos for their tests against latest anndata or simply against that branch.

See https://github.com/laminlabs/lamindb/blob/main/.github/workflows/build.yml#L151 and https://github.com/laminlabs/lamindb-dispatch/blob/main/.github/workflows/dispatch.yml for simple examples

second repo is private I think


Portal is not disabled when disabling the Button.

Issue Summary
This issue is based on the portal feature. My site already had membership enabled and the required profile pages etc.
With the portal feature enabled, even though I have removed the button via the portal setting, when users edit their payment details, and return to the site, the modal still appears. It would be great to be able to complete disable this feature via the admin portal. From what I can see this would just involve excluding the js file from being added to the DOM..
To Reproduce
Install ghost with portal enabled. Disable the portal button, and enable membership. Then perform user member updates as user, via the member links (stripe) etc but not via the portal.
Technical details:

Ghost Version: 3.38.1
Node Version: TBC
Browser/OS: Chrome Windows 10
Database: MySQL

Hey @rickdonato , thanks for raising. I looked into this and the earlier Portal script definitely had this issue where it showed the modal even if user edited their payment details via non-portal source. The latest version of Portal has fixed this and will only show modal if the billing change is done via Portal directly, otherwise not. You should be able to try it out without any changes on your end as we always load the latest version of script.
Excluding the portal js file in DOM is not a good solution because the file not only handles the modal but also any member interaction directly on theme as well so without the script none of the member actions will work

Thanks can you confirm what version fixes this.

@rickdonato The fix is live in Portal v0.13.1


Fix ESTree-AST converter because currently it's incorrectly convert loc.end

Example: loc.end always equal loc.start
 {
   token: {
     type: 'Name',
     loc: { start: { line: 4, column: 13 }, end: { line: 4, column: 13 } },
     value: 'veryBad',
     range: [ 40, 47 ]
   }
 }

I think is a bug with graphql-js because for Kind.Field it's returns incorrect endToken


feat(docs): restructure, recolour, elev8

Please read contributing guidelines and remove this line.

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


Add --without-sanctum option to install:api command

Overview
Not all applications use Laravel Sanctum or Passport by default. To accommodate this, the --without-sanctum option has been added to the install:api command.
Changes

Added the --without-sanctum option to the install:api command.
This option allows users to skip the installation of Laravel Sanctum during API setup.

Benefits

Provides flexibility for applications that do not require Sanctum or Passport.
Simplifies setup for users who only need basic API routing without Sanctum.

I don't think you should even use install:api if you're not using Sanctum.


[FIX][MINOR] Update database name to RC4Community(typo)

Minor Fix-->Updated the database name to RC4Community for init script and faunadb to work properly extending #200

@Sing-Li and @Dnouv, it'd be awesome if you guys could review this since it'll be helpful for us at #186


bugfix:wrong ignore code file

Ⅰ. Describe what this PR did
bugfix:wrong ignore code file
Ⅱ. Does this pull request fix one issue?
fix #1025
Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #1026 into develop will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop    #1026   +/-   ##
==========================================
  Coverage      38.27%   38.27%
  Complexity      1046     1046
==========================================
  Files            218      218
  Lines           8693     8693
  Branches        1083     1083
==========================================
  Hits            3327     3327
  Misses          4946     4946
  Partials         420      420

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 202227f...bb5532e. Read the comment docs.


Documentation for blocking navigation actions like back

https://reactnavigation.org/docs/en/routers.html#blocking-navigation-actions - this is pretty barebones.  These docs don't say how to handle async

Do you have any suggestions in mind to handle async? I looked at the source code of getStateForAction and it is not async itself so how do we get the router to wait until the async operation is completed?

For the back case: what I do is returning nothing and let my function handle the goBack action itself.


Update name for Democratic Republic of the Congo

trello: https://trello.com/c/rxjklHjL/191-country-name-change-democratic-republic-of-the-congo

The country formerly known as 'Democratic Republic of Congo' is now officially called 'Democratic Republic of the Congo'

👍


Tutorial based on an email generator

Tutorial for how to use LangCheck to evaluate a simple email generator. The sections are:

Building the email generator with the OpenAI API, and seeing some example generations
Using the reference free metrics to evaluate the generated emails
Using reference based metrics

Btw, you need to add the new .md page into the documentation tree so Sphinx finds it when building the docs.
I pushed a commit to do this (lmk if you have any questions): https://github.com/citadel-ai/langcheck/pull/27/commits/369500c5137ab9366f05f06ff8935127d3bde214
To see the docs locally you can follow step 2 & 3 here: https://langcheck.readthedocs.io/en/latest/contributing.html#documentation


Re-apply Raymond's move assignment change

Add -Wno-self-move flag to get Clang build to succeed

I'm going to assume that Chris accidentally closed this instead of merging? Hasn't responded to the question yet, so re-opening for now


add slascone

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: its-just-jo sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

I did sign the CLA for multiple repositories or organizations. Can you please check it?

I did sign the CLA for multiple repositories or organizations. Can you please check it?

Hey Ilias - @its-just-jo will need to sign the CLA as well, since he is the author of the PR. Let me know if there are any questions about that.

I signed the CLA


MemoryError when process "beer" dataset

When I try the beer dataset, there is a MemoryError occurred, due to a large number of the dataset to be padding.   But it works well on "restaurant" dataset.

Memory size of the machine I used is 65840088 KiB, so I didn't encounter this problem. But now the data preparing part is generally not well written as it takes a long time (around 20 mins) on large dataset like "beer".
You can try a few ways to make it work on your machine. For example, randomly sample a subset (e.g. size=50000) before padding.   Or you can pad the sentence inside the batch/negative generator instead of the beginning. In this case, you need to modify the network a little bit to set the sequence length of input to "None" to allow the shape of different batches to be different.

Thanks very much for your reply, It works well on a new machine now.


fix: signup logic when email and phone not enabled

IsSignupItemEnabled fails to do what it should do. It just check the existence of an item in application.SignupItems.
But the SignupItems will always have all the items, even those items which are not visible or required. So I use IsSignupItemVisible instead.
In fact, an item is actually enabled only if it is visible, so IsSignupItemEnabled is of no use. Can we just remove it?

@chinggg good finding! Yes, please remove IsSignupItemEnabled()


arrays.flat

Notice: The existing implementation doesn't match spec. Feel free to use it or trash it.
The flat() method creates a new array with all sub-array elements concatenated into it recursively up to the specified depth.
Checklist

[x] implementation
[x] tests
[x] jsdoc

Details
Should this be implemented iteratively or recursively. Study the MDN documentation in more depth before implementing.
References

Array.prototype.flat - MDN

Added in 0.42


[General] OtaJobEventActivate not getting triggered when OTA job created using aws cli

Briefly summarize the issue being raised
I am able to initiate OTA update via console. But OTA is stuck when initiating job via cli. I could see that 'OtaJobEventActivate' is not triggered even after "Received entire update and validated the signature" is shown in log
Describe the desired outcome
I want my OTA create job script to be able to successfully complete an OTA job
System information

Hardware board: ESP-32
IDE used: Gedit
Operating System: linux
Code version: cant find as I had downloaded a specific version arvhive from github
Project/Demo: ota demo
.

Code/Steps to reproduce the current status
echo '[
  {
    "fileName": $fwimagefilename,
    "fileType": 1,
    "fileLocation": {
      "stream": {
        "streamId": $streamid,
        "fileId":123
      }
    },
    "codeSigning": {
      "awsSignerJobId": $signingjobid
    }
  }
]' |  jq -n  --arg  fwimagefilename $FIRMWAREIMAGENAME --arg  streamid $OTASTREAMID \
     --arg signingjobid  $SIGNJOBID -f /dev/stdin > $CREATE_JOB_CLI_INPUT_JSON_FILE

aws iot create-ota-update --ota-update-id $OTAJOBNAME  --target-selection SNAPSHOT \
 --description "a cli ota update" --files file://$CREATE_JOB_CLI_INPUT_JSON_FILE  \
 --targets arn:aws:iot:$AWS_REGION:$AWS_ACCOUNT_ID:thing/$THINGNAME \
 --role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/$OTAROLE

Hello @kiran-g ,
The activate event is for activating the new firmware and in case of ESP32 it is rebooting the device so that bootloader will boot new image. When you are creating the job using CLI you are using file type ID of non zero and by default 0 is for self-firmware unless you have changed the OTA config for that. If you can try using 0 for filetype ID you should receive the activate event. This is done by default when you create a job using console.
Please try that and let me know how it goes.

Hello @kiran-g ,
Did that resolved your issue?

Yes. This issue is resolved. Thanks a lot for the help. You may please
close the ticket.
On Thu, Feb 3, 2022, 23:14 prasadvya @.***> wrote:

Hello @kiran-g https://github.com/kiran-g ,
Did that resolved your issue?
—
Reply to this email directly, view it on GitHub
https://github.com/aws/amazon-freertos/issues/3451#issuecomment-1029240651,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXRVRD5QFTLTMEQGS2QEM3UZK5IVANCNFSM5M2SACCQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>


cel token balance not showing

cel token balance not showing in the webapp.
token address: 0xaaaebe6fe48e54f431b0c390cfaf0b017d09d42d

Fixed on staging, dependent on the new API.

Fixed on staging, dependent on the new API.

bad dependent.
can we push to prod before the api?

bad dependent.
can we push to prod before the api?

Fixed

Fixed


Turbine-js feature branch changes (--listresources and app name)

Description of change
Changes as part of feature branch project for turbine-js. List resources on turbine-js now dumbs json similar to go, the code for parsing is now the same as for golang too.
Deploy also now requires an app name, this will be using to override app.json app_name.
Fixes (https://github.com/meroxa/product/issues/398)
Relevant PRs:
https://github.com/meroxa/turbine-js/pull/121
https://github.com/meroxa/meroxa-js/pull/23
Type of change

[x]  Refactor

How was this tested?

[ ]  Unit Tests
[x]  Tested in staging

Demo

before
after

Additional references
Documentation updated

@anna-cross you have some code from the py branch that will need a rebase in this one

@anna-cross @lyuboxa This pull-request introduced a small regression on changes made in https://github.com/meroxa/cli/pull/407/files in preparation for Intermediate Representation that will need to be reverted.


PLNSRVCE-551: destroy-cluster.sh is too destructive

Signed-off-by: Chenxiong Qi<EMAIL_ADDRESS>

/retest


feat(cli): add externalsType receive

add externalsType receive

Codecov Report

Merging #75 (88bf89e) into master (75f7a3c) will increase coverage by 0.47%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #75      +/-   ##
==========================================
+ Coverage   95.79%   96.26%   +0.47%
==========================================
  Files          15       17       +2
  Lines         214      241      +27
  Branches       35       42       +7
==========================================
+ Hits          205      232      +27
  Misses          9        9

Impacted Files
Coverage Δ

packages/launcher/src/hooks/index.ts
100.00% <0.00%> (ø)

packages/launcher/src/module/wrapperInit.tsx
100.00% <0.00%> (ø)

packages/launcher/src/hooks/use-aktiv-selector.ts
100.00% <0.00%> (ø)

packages/launcher/src/utils/get.ts
100.00% <0.00%> (ø)

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 75f7a3c...88bf89e. Read the comment docs.


feat: update proxy binaries on self-update

See: https://github.com/nim-lang/choosenim/pull/38#issuecomment-2370433463

Still missing tests. Comments welcome.


Sandbag barricades no longer have invisible bolts and can now be deconstructed

About the PR

Makes it so sandbag barricades no longer have an anchorable component. They now have to be deconstructed with the entrenching tool (simply click and wait for the do after).
Once deconstructed the amount of sandbags you get back depends on how damaged the barricade was. The values should match up with cmss13. This is what i referenced.
https://github.com/snebl/RMC-14/blob/5226556bf0915e4391a9168fe62a585b7a8ce017/Content.Shared/_RMC14/Entrenching/EntrenchingToolSystem.cs#L94
Why / Balance

Resolves #2823
Technical details

Adds BarricadeSandbagComponent.cs and SandbagDismantleDoAfterEvent.cs.
Most changes are in EntrenchingToolSystem.cs. It can now handle the use of the entrenching tool on a sandbag barricade.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

:cl:

add: Sandbag barricades can now be deconstructed with the entrenching tool.

Finished requested changes and i also added a 3rd data field for manually setting the max stack size received in case there are ever multiple kinds of sandbag-like barricades.


[Python] Lock always expired when client's clock is not synchronized

Hello,
I face a problem on one of my device that use a service bus with session in pattern Request/Response. My other devices using the same code and the same Service bus didn't have any problems.
Here the code :
from azure.servicebus import  ServiceBusMessage
from azure.servicebus.aio import ServiceBusClient, AutoLockRenewer
async def wait_reply(servicebus_client, message_id, session_id):
      auto_lock_renewer = AutoLockRenewer()
      receiver = servicebus_client.get_queue_receiver(queue_name=".....", session_id = session_id)

      async with receiver:
          auto_lock_renewer.register(receiver, receiver.session)
          logging.debug(f'Wait result message with id {message_id}')
          async for received in receiver:
              await receiver.complete_message(received)
              body = json.loads(str(received))
              return body

async def _wrap_az_func_request( queue_name, request, application_properties, session_id):
    """Same as wrap_az_func_request without timeout protection."""

    sent_message = ServiceBusMessage(
        utils.json_dumps(
            {"body": request,
            "reply_to_session_id":session_id}),
        application_properties=application_properties,
        reply_to_session_id = session_id) #Not work with property, had it in message
    conn_str = "....."
    servicebus_client = ServiceBusClient.from_connection_string(conn_str=conn_str)
    async with servicebus_client:
        #======== Sending Request
        sender =  servicebus_client.get_queue_sender(queue_name=queue_name)
        async with sender:
            logging.debug(f"Message sent with id {sent_message.message_id}. reply on session {session_id}")
            await sender.send_messages(sent_message)

        #======== Waiting for answer
        body = await wait_reply(servicebus_client, sent_message.message_id, session_id)

On this device, I always got a SessionLockLostError immediately after I wait for the answer message. (at async for received in receiver:)
I realized that this device's clock was not well synchronized, it was 3 minutes in advance (clock is 00h03m when universal time is 00h00).
For me the issue reside in the expired time of the Lock is given by ServiceBus server and it's is compare to client clock in _lock_expired
in ServiceBusSession.renew_lock()
class ServiceBusSession(BaseSession):
       async def renew_lock(self, **kwargs: Any) -> datetime.datetime:
             self._receiver._check_live()  # pylint: disable=protected-access
           [...]
             expiry = await self._receiver._mgmt_request_response_with_retry(  # pylint: disable=protected-access
                  REQUEST_RESPONSE_RENEW_SESSION_LOCK_OPERATION,
                  {MGMT_REQUEST_SESSION_ID: self._session_id},
                  mgmt_handlers.session_lock_renew_op,
                  timeout=timeout,
              )
              expiry_timestamp = expiry[MGMT_RESPONSE_RECEIVER_EXPIRATION] / 1000.0
              self._locked_until_utc = utc_from_timestamp(
                  expiry_timestamp
              )  # ty

In BaseSession
class BaseSession(object):
    @property
    def _lock_expired(self):
        return bool(self._locked_until_utc and self._locked_until_utc <= utc_now()) #Here _locker_until_utc from server clock is compared to client clock.

The AutoLockRenewer was not working as the function renew_lock  call _check_live
I don't know if the lib is design to fit on device that are not synchronized with universal time but a solution could be :
the server provide a offset and _locked_until_utc may be calculate as  _locked_until_utc = utc_now + offset
This solution would create problem in case of latency. So it not the ultimate solution. May be utc_now could be took before the request
For now I increased Lock duration to 5 minutes and i will correct my NTP problem.

Thanks for the feedback, we’ll investigate asap.

Apologies for the extremely late reply @maximeLeurent .
As you have described time skew is a very difficult problem. In the scenario above things can get really complicated if the clock continues to drift (5 mins today, 7 mins tomorrow etc), so it would need constant offset correction. The simplest fix would be to sync to NTP and figure out some of the issues causing skew, as the other machines are able to keep time properly.
Lock renewal is especially difficult to pad as the window is very small (sometimes 30 seconds). The best way to work around this problem where some clock skew is expected is to set a longer lock duration and then renew the locks early.


Watson sees non-food items

I tried giving Watson this image, which I took through the Calorie Counter app:

This is a snippet from what the Calorie Counter app saw, which, in this case, includes the color at the bottom (not a food item) and not "grapes":

The Watson Visual Recognition demo shows a similar list of non-food items as the app on the left (which does not contain "grapes" either), but also shows an accurate list of food items on the right (which contains "grapes" with 100% confidence):

Have used food classifier thereby increasing accuracy and response of analyzed image. @dolph @rhagarty

I am unable to deploy the ibm watson calorie counter:
i am gtting this error:
Preparing to start the job...
Logging into Bluemix as user<EMAIL_ADDRESS>Preparing the build artifacts...
Target: https://api.eu-gb.bluemix.net
Creating service instance wcc-visual-recognition in org<EMAIL_ADDRESS>/ space dev as<EMAIL_ADDRESS>FAILED
Could not find plan with name free
Finished: FAILED
can you help!!!


Proper intro section for tooltip

Like #94 but for tooltip :)

This LGTM. Though I'm now definitely thinking that we should extract some of the common guide bits into a separate doc because it's going to be difficult if we want to update the language in one, to have to go to each guide and update it there as well.

Agreed. Let’s do that when you get back. We can launch these two elements separately for now :)
I’ll make adjustments according to the changes we made to your PR

sgtm!

WOOOOO 🎉


Update examples

some examples such as https://github.com/IndustrialDataSpace/InformationModel/blob/examples/examples/DATA1.ttl needs to be updated and also remaining examples in the examples folder.
@HaydarAk

you're right. Thanks for the hint.
I'll update them soon :)

Concrete issues include:

outdated namespaces such as idsc_content:

We have brand new examples in our examples/ subdirectory.
Was done in #323


mercury: 14.01.1 -> 20.01

Motivation for this change
While trying out notmuch-bower I bumped mecury and succequently fixed the build issue that hydra currently shows for mercury. I have never in my life used mecury before so take this update with a huge grain of salt.
Things done

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

[X] NixOS
[ ] macOS
[ ] other Linux distributions

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

Please consider for 20.03 (#80379)
/cc @NixOS/nixos-release-managers

cc @jacereda, who fixed the build on darwin.
Karn Kallisto, who originally added package in 2014 doesn't appear to have a github account.

It failed for me on Darwin, but I'll send a separate fix for Darwin. @dtzWill will you PR your changes? If so, I'll PR on top of your changes instead...

Well, @r-ryantm took care of this already: b2bda57104495e5bf89ac325c1d2205c9697164d


good model_config and train_conig example

Does anybody have a 'good' model and training configuration .json to share? I am looking for some examples for experimenting,
mine right now looks like:
"
`{
"model_type": "autoencoder",
"sample_size": 32768,
"sample_rate": 44100,
"audio_channels": 1,
"model": {
"encoder": {
"type": "dac",
"config": {
"latent_dim": 64,
"d_model": 32,
"strides": [4, 4, 8, 8]
}
},
"decoder": {
"type": "dac",
"config": {
"latent_dim": 64,
"channels": 512,
"rates": [8, 4, 8, 4]
}
},
"bottleneck": {
"type": "vae"
},
"latent_dim": 64,
"downsampling_ratio": 1024,
"io_channels": 1
},
"training": {
"learning_rate": 1e-4,
"warmup_steps": 0,
"use_ema": false,
"loss_configs": {
"discriminator": {
"type": "encodec",
"config": {
"filters": 32,
"n_ffts": [2048, 1024, 512, 256, 128, 64, 32],
"hop_lengths": [512, 256, 128, 64, 32, 16, 8],
"win_lengths": [2048, 1024, 512, 256, 128, 64, 32]
},
"weights": {
"adversarial": 0.1,
"feature_matching": 5.0
}
},
"spectral": {
"type": "mrstft",
"config": {
"fft_sizes": [2048, 1024, 512, 256, 128, 64, 32],
"hop_sizes": [512, 256, 128, 64, 32, 16, 8],
"win_lengths": [2048, 1024, 512, 256, 128, 64, 32],
"perceptual_weighting": true
},
"weights": {
"mrstft": 1.0
}
},
"time": {
"type": "l1",
"weights": {
"l1": 0.0
}
}
},
"demo": {
"demo_every": 4000
}
}
}
"
and:
{
"dataset_type": "audio_dir",
"datasets": [
{
"id": "my_audio",
"path": "./trainingdata",
"random_crop": true
}
]
}
`
I also want to do training with my own prompts and cloud to figure out how to work with training data correctly. I want to use the title of all the audio training data as the matching prompt. So, if you have any tips...
Yeah, the documentation is hard for people who aren't quite experienced.
Thanks :)

Not sure if things were different when you posted this!
but, for lurkers finding this now, it appears these days both stable audio v1 and v2 configs are shared. Anything you're looking for in particular?
As for your idea bout using title of tracks for the prompt, you'd use the custom_metadata.py as described in the dataset config documentation. I'd be skeptical of the results of this though, as the title usually doesn't have too much information. Unless your files are named quite descriptively, you'll probably have a bad time.


RabbitMQ Connection failed: timeout

I can't configure the fcmalert process to connect to RabbitMQ.
If I run when_alert.py I get the error pika.exceptions.ConnectionClosed: Connection to <IP_ADDRESS>:5672 failed: timeout.
I installed RabbitMQ in a docker container.
According to netstat docker-proxy is bound to port 5672 and port 15672 however only using IPv6 (not 4).
Any ideas?

Also run fcmdiag
Its a command that should have copied to your bin directory. It will tell you if all the services are running.
pi@raspberrypi:~/bin $ fcmdiag
Starting application...
2018-10-21 14:33:43: Starting FCM Init
2018-10-21 14:33:43: Starting FCM Configuration
Starting FCM Cache
started fullcycle
cache is working
message bus is working
database is working, 8846 logs

When I tail the process from the supervisor website I see:
Error Response
Error Code 410.
Message Gone.

fcmdiag returns the same message as you except the number of database logs is 2.

I installed FullCycle on the October raspbian and made a few small fixes to the install and committed the fixes to github.
I noticed that supervisord was not automatically installed by raspbian. If you installed it manually you should get version 3.3.4
pi@raspberrypi:~ $ supervisord -v
3.3.4

But supervisord is working for me. You might need to uninstall and reinstall supervisord.
Also make sure you only have one version of supervisord installed.
pi@raspberrypi:~ $ whereis supervisord
supervisord: /etc/supervisord.conf /usr/local/bin/supervisord

I had an issue in the past where I had 2 versions of supervisord installed and it caused problems.
Please review the following items.

sudo nano ~/fullcycle/fullcyclepy/backend/config/services.conf
Make sure the ip addresses are correct. The source file had my network settings. You should probably be using <IP_ADDRESS>

2)sudo nano ~/fullcycle/fullcyclepy/backend/config/miners.conf
Configure at least 1 miner with the correct ip address just to be safe

Sometimes the python libraries in requirements.txt do not install correctly. I need a more robust setup for those. In the mean time you might have to install those python libraries manually.

As a test, run fcmsimple and it should grab the stats of your miner in miner.conf. Let me know if there are any errors.

Thanks and sorry about message ordering yesterday GitHub was failing. I believe the Supervisor message is due to the Unicode encoding.
In the miner conf “default” port is 4048 or similar however running port scan mine are only open on port 22 and 80. Will this use ssh port 22 or do I need to open another port on the miner to interface?
I’ll try reinstalling dependencies and see if that helps too.

Closing this - I bought a Pi instead. I've opened a new tickets relating to setup: https://github.com/dfoderick/fullcycle/issues/23


SAGMill Recipes-Group "Common Ores/Ingots" can't be disabled

I'm testing around with changing recipes and was able to disable all other SAGmill related recipes-groups(like Vanilla, EnderIO, Dense Ores, ...) , but all recipes in the group "Common Ores/Ingots" can't be deactivated.
Yes I replaced the SAGMillRecipes_User.xml and was using this code:
<SAGMillRecipes>
<recipeGroup name="Vanilla" enabled="false"/>
<recipeGroup name="Dense Ores" enabled="false"/>
<recipeGroup name="Common Ores/Ingots" enabled="false"/>
<recipeGroup name="Biomes O' Plenty" enabled="false"/>
<recipeGroup name="EnderIO" enabled="false"/>
<recipeGroup name="Applied Energistics" enabled="false" />
</SAGMillRecipes>

Could it be, that the "/" in the name of the group is resposibility for this problem?
Also tested it on some modpack like FTB Infinity, direwolf 20, infitech2 with different ender-io version, same result.
Relevant Mods:
EnderIO-1.7.10-<IP_ADDRESS>9
Forge <IP_ADDRESS>7-1.7.10
(of course there are more mods, but they shouldn't interfere with enderio)

if you disabled EnderIO & Vanilla & Common Ores recipes shouldn't that render the Sagmill useless ? maybe it's intended that way as a fail-safe ?

I tried to disable everything else cause I was thinking I made a mistake, it's just for testing purposes.
Don't know if it's a failsafe, but I'm trying to change the way ore's are processed, so I don't want them to be 1 ore -> 2 dust(+more), so I need to disable or change the default-recipes to archive this.
Also tried to replace the default-recipes with empty-one(like it's written in the user file) didn't work also for this group

post the recipe you want to replace and mods that adds the ingots i will try to see if i can do it

I was trying to change the recipe for Copper-Ore/Dust(and would have changed the other ores) but the bug appeared
Mods that add Copper-Ore
Cofh/Thermal Foundation
Tinkers' Construct
(and I use aobd and activated clusters und dirty dust)
Codes I used:
<recipeGroup name="Common Ores/Ingots">
      <recipe name="CopperOre2" energyCost="3600">
      <input>
        <itemStack oreDictionary="plankWood" />
      </input>
      <output>
        <itemStack modID="aobd" itemName="clusterCopper" number="1" />
        <itemStack modID="aobd" itemName="dustDirtyCopper" number="1" chance="0.10" />
      </output>
    </recipe>

      <recipe name="CopperOre3" energyCost="3600">
      <input>
        <itemStack oreDictionary="oreCopper" />
      </input>
      <output>
        <itemStack modID="aobd" itemName="clusterCopper" number="1" />
        <itemStack modID="aobd" itemName="dustDirtyCopper" number="1" chance="0.10" />
      </output>
    </recipe>

      <recipe name="CopperOre" energyCost="3600">
      <input>
        <itemStack oreDictionary="oreCopper" />
      </input>
      <output>
        <itemStack modID="aobd" itemName="clusterCopper" number="1" />
        <itemStack modID="aobd" itemName="dustDirtyCopper" number="1" chance="0.10" />
      </output>
    </recipe>
</recipeGroup>

The recipe named CopperOre2 which makes copper out of planks does work
The recipes named CopperOre(which would override the recipe in the core.xml) and CopperOre3 don't work and they are only modified copies of the CopperOre2-Recipe.
It also doesn't matter if I create a new recipe-group, I can't change the original Recipe

i might be stupid or missing something , when i go to AOBD tab in creative there is nothing in it . how i can add clusterCopper & dustDirtyCopper ?
i'm using
Mantle-1.7.10-0.3.2
CoFHCore-[1.7.10]3.0.0RC5-207
TConstruct-1.7.10-1.8.2a
ThermalFoundation-[1.7.10]1.0.0RC4-58
ThermalExpansion-[1.7.10]4.0.0RC6-138
EnderIO-1.7.10-<IP_ADDRESS>9
FORGE 1291

you need to change the config for aodb, there is an entry for this:
    # Add prefixes separated by commas.
    # Textures will be aobd:prefix and aobd:prefix_overlay.
    # Example: dust,cluster
    S:items= dust, dustDirty, cluster

i see your problem now  , Common Ores/Ingots group cannot be disabled , it so weird it just can't be disabled i even managed to edit the core.xml and changes was saved but it still can't get disabled , deleted the entire ''Common Ores/Ingots group'' from the core.xml
to do that edit Sagmill_core.XML and remove ''Common Ores/Ingots group'' then save it next open EIO jar file with winrar then go to assets > config and drag your modified core.xml to it
then delete core.xml in EIO Config file the new generated will be the one you have modified
sorry bro i couldn't be much of help i really want to get it working too i never knew what AOBD was until i start messing with it , and gotta say i love the cluster & dirty cluster if you manage to get it working plz do let me know

Did some testing and even after editing the .jar and deleting the recipes, the recipes didn't disappear.
I started rebuilding my modpack part by part (adding one mod, starting it up and look if it's working like intendet) and found out that it is AOBD interfering with the Sag Mill:
AOBD automatically detects every ore and adds processing-recipes to the sag-mill and overrites all my changes. To prevent this, you have to edit the config for AOBD and disable enderio for every ore.
Problem solved.

what an easy solution for a complicated issue , so can common ores group be disabled now ?

The _user.xml can disable / change all recipes from the _core.xml - the issue is that IMC based recipes (eg these done by AOBD and other mods) are executed after the _user.xml has been processed.


browser.contentblocking.category=strict breaks various websites

BEFORE YOU BEGIN
I have attempted the following troubleshooting suggestions:

[ ] The issue persists when using Firefox in Troubleshoot Mode.
[x] Disabled DNS-level content blocking (AdGuard Home, NextDNS, Control D, RethinkDNS, PiHole, etc), cleared my DNS cache, and used my ISP's DNS resolver (if applicable).
[x] Cleared website data, restarted Firefox, and my issue persists.
[x] I have created a new profile. The issue persists when using the current user.js file on GitHub. (Must be in a new profile and a new user.js!)

REPORT
Describe the bug
Visiting https://www.google.com/maps/place/mongolia/data=!4m2!3m1!1s0x3627050669aa6d4b:0xe0dd213937e6e096?sa=X&ved=2ahUKEwiCx9DS5-6CAxWAk4kEHQg9DAMQ8gF6BAgREAA causes the tab to lock up.
To Reproduce
Steps to reproduce the behavior:
1. Create a new profile
2. Install user.js
3. Visit <https://www.google.com/maps/place/mongolia/data=!4m2!3m1!1s0x3627050669aa6d4b:0xe0dd213937e6e096?sa=X&ved=2ahUKEwiCx9DS5-6CAxWAk4kEHQg9DAMQ8gF6BAgREAA>
4. Observe that the tab is non-responsive

Expected behavior
The tab should not lock up like this
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Linux
Browser: Firefox
Version: 120.0

Additional context
I bisected user.js to find the offending preference, and I found that if I remove user_pref("browser.contentblocking.category", "strict") from user.js and create a new profile (you must restart firefox after changing this value) that map page no longer becomes non-responsive.
Various other pages become inconsistently non-responsive, that maps link is the only one that's consistent.

I cannot reproduce on Stable or Nightly with Windows 11. I don't have access to a Linux build at the moment, so this may be a Linux-only bug. But that's a pretty serious bug for Mozilla if Strict is causing that behavior.
There was an issue awhile back with Google Maps caused by WebGL https://github.com/yokoffing/Betterfox/issues/203.
Have you updated to 120.0.1?

Fixed an issue that was causing 100% CPU usage on sites such as Google Maps. (bug 1866409)

Yep, upgrading to 120.0.1 does indeed fix the issue.


enhancement: Add ability to attach files to email

PR for https://github.com/go-vela/community/issues/513
adds ability to attach files to an email. This PR corrects the use of email.Attachment and adds EmailFilename to be the file that contains the contents of the email.

@wass3r  this isn't a breaking change, and i'm not sure what you mean by attribution but i pulled it off the internet. I can replace it with a target image if needed


Explain differences to Theia

The FAQ would really benefit from a section explaining the differences between this project and Eclipse Theia.

Agreed.


build.rs configuration as struct instead of strings

Changes the configuration system from passing around a Vec where each entry was a value for a different part of the configuration (with different types, all wrapped in strings) with a InterpreterConfig struct.
Also removes some outdated code.
This should either be merged after 0.7 or we should make another prerelease to ensure this doesn't break any platform.

Looks good refactoring for me, though I'm skeptical about specifying the minor version of serde.


Process.argv hint for newbies

I think it's always helpful when you first require use of the process.argv method to supply arguments to say something along the lines of:
**HINTS**
To access the arguments you can use the process.argv array.

**Important!** The process.argv array contains not just the arguments but also the runtime (first variable) and the script file loaded (second variable)!
This means the first argument is stored at the third position:

    process.argv[2]

This was something I forgot when I first started on learnyoumongo, and only knew how to resolve (by printing all the process.argv) because I'd done another nodeschool workshopper some time ago.
This was cribbed from the tower of babel nodeschool.

I would be more than happy to accept a pull request adding this

Closed by https://github.com/evanlucas/learnyoumongo/pull/25


Test .img file generation in CI on PRs and main too

The base images are built as Docker images and on release, uploaded to Docker Hub. However, the Heroku platform currently doesn't use those images directly, instead using a custom .img file from S3.
Previously this .img file generation was only performed on release, meaning that the CI for PRs and on main wouldn't test that code-path, so we might not find out about breakage until time of release.
Now, the generation (but not S3 upload) is performed for PRs / main too.
This will allow us to more easily iterate on optimising the image generation in later PRs.
GUS-W-15244492.

See here for an example of the image generation being run, but the upload being skipped (as expected, since a PR):
https://github.com/heroku/base-images/actions/runs/8267747525/job/22618965845?pr=261#step:7:1


input: Release the device when the input is inactivated

Regarding the PR #358, Users will want to switch the input between DirectShow(or OpenCV Capture) and OpenCV File. In current implementation, the input classes doesn't release the capture device properly, therefore the new instance of the class will fail to initialize the same capture device later (e.g. use realtime mode -> process files -> get back to realtime mode)

Add destructor to input class. Will call input-specific destructor_function e.g. _release_source_func()
Implement _release_source_func() for each input classes
How we can notify the old source is actually released? (in case of the situation releasing a capture device and re-initializing the same capture device)

ikalog.inputs.capture shouldn't have this issue.


NuGet.Server - Move off NuGet.Core

Move off NuGet.Core for package uploads + serving the repo on disk

Also fixes https://github.com/NuGet/NuGetGallery/issues/3159#issuecomment-247256543


nixos/doc/manual: correct gpu acceleration opencl configs

Motivation for this change
The current configurations given for AMD and Intel OpenCL GPU acceleration in the NixOS manual fail to build as rocm-opencl-icd and intel-compute-runtime are not defined as packages
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

Looks good to me, but needs to be rebased and use the new markdown doc files.

This is long-outdated.
Please open a new PR for the intel-compute-runtime change if it's still needed.


added expandable.less file for payex and changed font from arial to f…

Description
Added expandable.less for payex designguide and changed font from arial to futura
Motivation and Context
(https://payexjira.atlassian.net/browse/PFE-1623)
How Has This Been Tested?
Tested locally and confirmed the right change has been made.
Tested in a test environment with the same result.
Screenshots (if appropriate):
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.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[X] I have read the CONTRIBUTING document.
[ ] I have updated the CHANGELOG document.
[ ] I have added tests to cover my changes.
[X] All new and existing tests passed.

Review instructions
Review instructions

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Blog Post: Using Git and IPFS to Build a Simple Searchable Website

There's a cool story to tell here, and some great sample code that we should feature about making the static site for awesome-ipfs and window.ipfs demos.
We've just merged a PR in ipfs/awesome-ipfs with work by @hacdias that renders awesome-ipfs as a static website that's full of dynamic features (search, filter, etc). It looks like the ipfs-companion team might reuse the same code to make a site with window.ipfs demos. I'm really happy to see these sites coming into existence and want to promote them, but I also want to call people's attention to how we built these sites, where they can find the code, and how they can repeat the process to build their own sites on ipfs that transform a yaml file (usually in git) into a dynamic, searchable listing of whatever you want.

We can probably come up with a better title, though this one might make it a very popular destination for people looking for learning materials.


add ssh connection for faucet server

Codecov Report

Merging #404 into master will decrease coverage by 0.29%.
The diff coverage is 90.62%.

@@            Coverage Diff            @@
##           master     #404     +/-   ##
=========================================
- Coverage   98.31%   98.02%   -0.3%
=========================================
  Files          27       28      +1
  Lines        1785     1825     +40
  Branches      102      103      +1
=========================================
+ Hits         1755     1789     +34
- Misses         17       23      +6
  Partials       13       13

Impacted Files
Coverage Δ

...hBoundControllerAbstraction/proxy/faucet/faucet.py
95.34% <100%> (-4.66%)
:arrow_down:

...bstraction/test_NorthBoundControllerAbstraction.py
100% <100%> (ø)
:arrow_up:

...dControllerAbstraction/proxy/faucet/test_faucet.py
100% <100%> (ø)
:arrow_up:

...llerAbstraction/NorthBoundControllerAbstraction.py
98.8% <100%> (+1.25%)
:arrow_up:

...ndControllerAbstraction/proxy/faucet/connection.py
76.92% <76.92%> (ø)

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 903fc3a...04d986b. Read the comment docs.


MWPW-127801 Changing eslint folders to creativecloud

Add your specific features or fixes

Resolves: MWPW-127801
Test URLs:

Before: NA
After: NA

Codecov Report

:exclamation: No coverage uploaded for pull request base (stage@e135587). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             stage       #24   +/-   ##
=========================================
  Coverage         ?   100.00%
=========================================
  Files            ?         2
  Lines            ?        14
  Branches         ?         0
=========================================
  Hits             ?        14
  Misses           ?         0
  Partials         ?         0

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


choose a static site generator

will host the docs content of both Portable OpenStreetMap (POSM) and OpenMapKit (OMK)
the sites are currently live at http://posm.io/ and http://openmapkit.org/
i like http://www.mkdocs.org/ and https://docsify.js.org/ but there are plenty of options out there

what are any major differences in the functionalities?
i’m not worried about duplicating the appearance of the landing/home page of the OMK site, just the http://openmapkit.org/docs.html material needs to be ported over
the POSM site is not at all mobile friendly and does have a very extendable layout (for example, limited in the number of topics that can be added to the top nav bar)

Current Requirements

Requirements
Priority

Supports Markdown

Supports flexible website structures

Adoption by open-source community

Implemented in technology with some level of in-house experience

Supports GitHub pages

Generates Static Site

Requirements from conversation with @danbjoseph on Friday, March 9

went with sphinx for now


Raw/Edit for the README in project overview

I like this panel:

Here: https://try.gitea.io/ZeroNet/ZeroNet
This was always something that made me really upset in Github and confuses some users.
The bar there makes it easier and simpler to contribute to the README, link it and so on.

Thanks for your like. We will close this one and please feel free to reopen it.


Please update to 1.20.1

Great mod
Thanks in advance <3

bump (i think thats how it works)

I didn't miss this, I just can't work on the mod right now, I'll port to 1.20.1 in a couple of days since I can't right now

@MrBoogyBam
is it done?

I didn't miss this, I just can't work on the mod right now, I'll port to 1.20.1 in a couple of days since I can't right now

Finally done, newest version works with 1.20 and 1.20.1


[zgui] InputTextFlags is missing escape_clears_all

The InputTextFlags struct is missing escape_clears_all in gui.zig. The ImGuiInputTextFlags_ enum in imgui.h has this defined as bit 20.

Fixed by 3edeac941d989d4d11556be018d65bba83dd8bd0. Thanks!


determine minimum IAM role definition and document use of that role

Currently there is no guidance around the permissions needed to run a CNDI deployment, and we frequently use personal credentials which have many more allowed permissions than are necessary. The account that cndi connects to AWS with should have only the permissions required to do the job.

https://docs.google.com/document/d/1Zbe74qOKldsgcFLKjYbiWAXk0yhvoM1UIoGgVgsPooY/edit?usp=sharing

API manager needs to be enabled


Mlonis fix for issue 165

Description
This pull request resolves issue #165 .
Changelog
Get-PSScriptInfoString.ps1

Removed the trailing whitespace on line 90.
Refactored lines 96-97 as a singular line of code. This change functions just like the code before but, when $ReleaseNotes is the empty string, it will no longer add an extra newline when the release notes section is being left empty.

Get-ScriptCommentHelpInfoString.ps1

Modified line 50, 54, 62, 72, 82, 89, 97, 104, 109, 114, & 117 to remove the trailing whitespaces when creating the comment help info string.

Update-ScriptFileInfo.ps1

Modified line 399 to no longer add a character return newline sequence when the $requiresString is the empty string.
Modified line 405 to no longer add a character return newline sequence when a script already has Requires -Module statements but the update function is not looking to add any new Requires -Module statements.
Modified line 444 to remove the trailing whitespace after the word DESCRIPTION in the script info.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: mrlonis sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


[BUG] Timeout on ScreenshotAsync

Context:

Playwright Version:1.20.2
Operating System: Linux
.NET version: 6.0.202
Browser: Chrome
Extra: Headless browser,

Code Snippet
 await page.ScreenshotAsync(new PageScreenshotOptions()
                {
                    Path = $"{_testResultsDir}/screen_shot.jpg",
                    FullPage = true,
                });

Describe the bug
I observed that from time to time (at least once per 100 test runs) playwright cannot take screenshots and throws a timeout exception.
Setup failed for test fixture MyTests
System.TimeoutException : Timeout 30000ms exceeded.
StackTrace:    at Microsoft.Playwright.Transport.Connection.InnerSendMessageToServerAsync[T](String guid, String method, Object args) in /_/src/Playwright/Transport/Connection.cs:line 161
   at Microsoft.Playwright.Transport.Connection.WrapApiCallAsync[T](Func`1 action, Boolean isInternal) in /_/src/Playwright/Transport/Connection.cs:line 487
   at Microsoft.Playwright.Transport.Channels.PageChannel.ScreenshotAsync(String path, Nullable`1 fullPage, Clip clip, Nullable`1 omitBackground, Nullable`1 type, Nullable`1 quality, IEnumerable`1 mask, Nullable`1 timeout) in /_/src/Playwright/Transport/Channels/PageChannel.cs:line 414
   at Microsoft.Playwright.Core.Page.ScreenshotAsync(PageScreenshotOptions options) in /_/src/Playwright/Core/Page.cs:line 591
   at Pyra.Availability.Ui.Tests.Tests.UI.TestsSetup.OneTimeSetUp() in /vsts/agent/_work/1/s/MyTests/TestsSetup.cs:line 66
   at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
   at NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter awaiter)
   at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
   at NUnit.Framework.Internal.Commands.SetUpTearDownItem.RunSetUpOrTearDownMethod(TestExecutionContext context, IMethodInfo method)
   at NUnit.Framework.Internal.Commands.SetUpTearDownItem.RunSetUp(TestExecutionContext context)
   at NUnit.Framework.Internal.Commands.OneTimeSetUpCommand.<>c__DisplayClass0_0.<.ctor>b__0(TestExecutionContext context)
   at NUnit.Framework.Internal.Commands.BeforeTestCommand.Execute(TestExecutionContext context)
   at NUnit.Framework.Internal.Commands.BeforeTestCommand.Execute(TestExecutionContext context)
   at NUnit.Framework.Internal.Execution.CompositeWorkItem.PerformOneTimeSetUp()

Probably it depends on the website where you take a screenshots on, is it reproducible for you?


Fix: update pointer code

Fix bug and opt code.

Codecov Report
Base: 44.06% // Head: 42.09% // Decreases project coverage by -1.96% :warning:

Coverage data is based on head (85023bd) compared to base (8da10c5).
Patch coverage: 25.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff             @@
##           dev/0.9    #1121      +/-   ##
===========================================
- Coverage    44.06%   42.09%   -1.97%
===========================================
  Files          342      342
  Lines        17950    17952       +2
  Branches      2485     2487       +2
===========================================
- Hits          7909     7557     -352
- Misses        9387     9789     +402
+ Partials       654      606      -48

Impacted Files
Coverage Δ

packages/core/src/input/InputManager.ts
39.24% <ø> (-6.33%)
:arrow_down:

packages/core/src/input/pointer/PointerManager.ts
23.15% <25.00%> (-5.21%)
:arrow_down:

...ckages/core/src/shadow/CascadedShadowCasterPass.ts
18.55% <0.00%> (-29.39%)
:arrow_down:

packages/core/src/RenderPipeline/RenderContext.ts
71.42% <0.00%> (-28.58%)
:arrow_down:

...ges/core/src/RenderPipeline/BasicRenderPipeline.ts
23.61% <0.00%> (-26.39%)
:arrow_down:

packages/core/src/Camera.ts
33.67% <0.00%> (-21.94%)
:arrow_down:

packages/rhi-webgl/src/WebGLRenderer.ts
47.58% <0.00%> (-20.00%)
:arrow_down:

packages/core/src/SceneManager.ts
41.37% <0.00%> (-17.25%)
:arrow_down:

...ackages/core/src/input/keyboard/KeyboardManager.ts
34.72% <0.00%> (-13.89%)
:arrow_down:

packages/core/src/Engine.ts
68.80% <0.00%> (-13.77%)
:arrow_down:

... and 31 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Demo excluding layers of animation

Hello,
I was having similar problems last week where I would export a demo and some layer would not show up, the problem was fixed by removing the merge paths. Now I am having the same problem and I have made sure to remove all merge paths, I'm not sure why it is still excluding some layers in the demo. Could you please diagnose this problem.
Drive thru_building only.aep 3.zip

hi
what composition is not working?

The car loop composition, its 25 seconds long.
On Wed, Mar 29, 2017 at 6:51 PM hernan<EMAIL_ADDRESS>wrote:

hi
what composition is not working?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bodymovin/bodymovin/issues/338#issuecomment-290260688,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AZb7OzGFFPyZyOPbA6hxSJfrO2e1yqdbks5rqu5vgaJpZM4MtpuO
.

It seems to be working fine here.
What are the missing layers?

Nevermind, I got it thank out.


CDS-80356: [Documentation] K8s secrets with SOPS - first draft.

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[x] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

CDS-80356

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[x] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


Payments

I have tried to implement e-sewa API for payments, can you please check and merge it with the master if everything is fine

LGTM


Welling/regularize snare assay types

To be merged into test-release following the merged PR: https://github.com/hubmapconsortium/search-api/pull/317

@jswelling I created this draft PR since we've merged the original PR into dev-integrate, eventually we'll need to get the changes to test-release, just in case we forget.


Can't search IP address

Describe the bug
We store networking data in a wiki document, such as IPs. We can't search for IPs in documents, which is quite useful for us.
Steps To Reproduce
Steps to reproduce the behavior:

Go to search bar.
Type in IP address i.e. <IP_ADDRESS>
Hit return and no results are shown

Expected behavior
The search should show pages which contain the IP address. Without the period character the search works.
Your Configuration (please complete the following information):

Exact BookStack Version BookStack v0.24.1
PHP Version: 7.1
Hosting Method (Nginx/Apache/Docker): Apache

Additional context

wrap the IP address in double quotes and it will find it eg. "<IP_ADDRESS>". I can't see the full stop character in the search filter documentation, but it might be reserved for custom searches

Thanks @matt-ttam for providing an answer to this.