Feature request for page.waitForSelector() reverse

I often want to wait for an element to disappear before continuing; right now, I'm adding selectors for both existing and removed situations (for example, when a modal is open and closed) so that I can use something like:
await page.click('[data-testId="openModalButton"]')
await page.waitForSelector('[data-testId="modal"]')
await page.click('[data-testId="closeModalButton"]')
await page.waitForSelector('[data-testId="noModal"]')

But having to add a non-existent element (ie noModal) to check that a selector has been removed seems odd; could we get a ! reverse/negate option or something like it? Like page.waitForSelector(!{selector})? So this could be:
await page.click('[data-testId="openModalButton"]')
await page.waitForSelector('[data-testId="modal"]')
await page.click('[data-testId="closeModalButton"]')
await page.waitForSelector(!'[data-testId="modal"]')

Then adding empty DOM elements to verify a selector doesn't have a match wouldn't be necessary.
Thanks!

Will this work for you?
await page.waitFor(() => !document.querySelector(".cool-thing"));

I'll close this issue, but if there is a lot of support for it we can revisit it.

What about an option on waitFor* APIs? Something like:
await page.waitForSelector('[data-testId="modal"]', { reverse: true })

(maybe with a better key name)

@albertogasparin I implemented a waitForSelector option for when an element is hidden, work for you? #967
await page. waitForSelector('#selector', { hidden: true });

@ChristianDavis I'm in the same need as @trevordmiller and I did try the { hidden: true } and unfortunately it doesn't work for me as I need the selector to disappear, not just be hidden.
as you've written in #967

hidden: Waits for a selector to be present and hidden, opposite behavior of the option visible.

I think that the { reverse: true } option would be more appropriate
here is for example what the webdriverio's waitForExist reverse parameter does:

reverse: if true it instead waits for the selector to not match any elements (default: false)

I've previously used webdriverio for my tests and the reverse parameter has been essential for my tests. I am now using puppeteer and quite like it. However, the reverse parameter for waitForSelector would be really useful as it has, in my opinion, a very broad use case

@Martin-Kuca agreed, I implemented reverse in #967, trying to convince members it's useful

is this achievable  through current version


Corrected a broken table on MS Authenticator management options and s…

…coping
An excessive line feed was wrongly making the authentication management location appear as a new authentication method.

@cyrilvoisin : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"

@BarbaraSelden For review
Thanks.

#SIGN-OFF


Phone number format

Is it possible to change the phone number editor format?

User mask editor or similiar.


Data not passing through

Hi there. Awesome product.
Unfortunately, at the moment I cannot get any output from my tunnel in my browser. Instead it just seems to sit and spin with no data every getting returned. I get a url back when I run the client from the shell. I can ping that url. It resolves to the same IP as localtunnel.me. I assume this is correct.
Some background: I am using the built in PHP server on my local computer and am using port 8080.
Thanks!

Thanks for putting your answer, this was driving me nuts!


integrate parallel connection scheduler

Already available in code base, but need to test it properly.

UdpTransport is fully prepared for parallel connection scheduling.

Idem for WebRtcTransport and TurnTransport

fixed in release 0.18.0


Magento 2.2.X compatibility

Hi,
Does the language pack compatible with Magento 2.2.X ?
Thank you.

Sorry, we missed this issue.
It is compatible.


Add x-forwarded-host to the nginx config in the deis-router for ruby apps issue

Here are descriptions of the issue that we see in our Ruby apps after adding
router.deis.io/nginx.useProxyProtocol: "true"
https://stackoverflow.com/a/51111144/2112497
https://github.com/rails/rails/issues/22965
Env:
K8s 1.12.9, workflow-v2.20.0
We are terminating our SSL certs on the AWS ELB in front of the deis-router.

Thread from teamhephy slack channel:
We’d like to add x-forwarded-host to the nginx config in the deis-router. Doesn’t look this this is currently supported.
https://stackoverflow.com/a/51111144/2112497
https://github.com/rails/rails/issues/22965
cryptophobia  7 days ago
Should be possible. This seems to be a header set per application, right?
cryptophobia  7 days ago
Let me know if you need help with this but should be a few lines to add to the deis-router configuration as an annotation on each application deployment.
duncanmcnaught  7 days ago
I’m not sure how to add custom nginx.conf settings. I think I just want to add this line proxy_set_header  X-Forwarded-Host $host;
@cryptophobia (edited)
duncanmcnaught  7 days ago
I thought you could just add the settings listed: https://github.com/teamhephy/router (edited)
duncanmcnaught  7 days ago
Do you have time to help @cryptophobia?
cryptophobia  7 days ago
We will need to make a PR and make it configurable?
cryptophobia  7 days ago
I can take a look sometime tomorrow. Do you want this proxy_set_header to be set default for every app or to be configurable?
duncanmcnaught  7 days ago
I’m not sure if we would be ok just adding X-Forwarded-Host and X-Forwarded-Ssl to  router.deis.io/nginx.useProxyProtocol (https://github.com/teamhephy/router#use-proxy-protocol) - I’m not sure why they weren’t put there before. Do you know @felixbuenemann? (edited)
cryptophobia  7 days ago
@felixbuenemann should know more about this.
cryptophobia  6 days ago
From what I am reading @duncanmcnaught, it looks like X-Forwarded-Ssl is an extra header that does not always need to be proxied to the backend to make HTTPS requests work. For example look at this issue in Gitlab source code: https://gitlab.com/gitlab-org/gitlab-ce/issues/32937 (edited)
duncanmcnaught  6 days ago
Right - we’re thinking that the X-Forwarded-Host will be enough to fix our ruby apps having the problem linked to start this thread
duncanmcnaught  6 days ago
Do you think we can get a fix in @cryptophobia?
cryptophobia  6 days ago
Sure, all we need to add is this header if proxyProtocol is set to true, correct?
cryptophobia  6 days ago
I can attempt a PR, should only be a one/two line change. Would need you to test with a router image to verify it works.
:ok_hand:
cryptophobia  6 days ago
I will have the PR ready tom morning and docker image tag for testing.
:+1:
duncanmcnaught  6 days ago
Great. Thanks!
cryptophobia  5 days ago
Hey @duncanmcnaught, looks like the X-Forwarded-Host header has a privacy concern that I do not want to enable by default.
cryptophobia  5 days ago
This header is used for debugging, statistics, and generating location-dependent content and by design it exposes privacy sensitive information, such as the IP address of the client. Therefore the user's privacy must be kept in mind when deploying this header.
cryptophobia  5 days ago
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host (edited)
cryptophobia  5 days ago
We should only be concerned with the protocol selection HTTP vs HTTPS. This is likely related to how you have configured your rails application. I will let @felixbuenemann chime in but I don't see a reason to add this header for the above privacy concerns.
cryptophobia  5 days ago
It's clear in the code that useProxyProtocol is not dealing with setting any X-Forwarded-For headers or X-Forwarded-Hosts:
{{ if $routerConfig.UseProxyProtocol -}}
real_ip_header proxy_protocol;
{{- else -}}
real_ip_header X-Forwarded-For;
{{- end }}
cryptophobia  5 days ago
This is the exact behavior from the nginx-ingress config builder. I'm not sure we should deviate from the exact behavior of the nginx-ingress k8s controller just to satisfy some Rails app requirements.
cryptophobia  5 days ago
https://github.com/kubernetes/ingress-nginx/blob/master/rootfs/etc/nginx/template/nginx.tmpl#L127-L134
GitHubGitHub
kubernetes/ingress-nginx
NGINX Ingress Controller for Kubernetes. Contribute to kubernetes/ingress-nginx development by creating an account on GitHub.
cryptophobia  5 days ago
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#forwarded-for-header
duncanmcnaught  5 days ago
Maybe we can set it as a separate config option - so only rails app users would turn it on? @cryptophobia
cryptophobia  5 days ago
We could add as a separate config option annotation but this would still deviate from nginx-controller best practices.
duncanmcnaught  5 days ago
It seems like the ingress-nginx for k8s does allow X-Forwarded-Host: https://github.com/kubernetes/ingress-nginx/search?l=Markdown&q=X-Forwarded-Host&type=Code @cryptophobia
GitHubGitHub
kubernetes/ingress-nginx
NGINX Ingress Controller for Kubernetes. Contribute to kubernetes/ingress-nginx development by creating an account on GitHub.
duncanmcnaught  5 days ago
https://github.com/kubernetes/ingress-nginx/blob/master/rootfs/etc/nginx/template/nginx.tmpl#L1192
GitHubGitHub
kubernetes/ingress-nginx
NGINX Ingress Controller for Kubernetes. Contribute to kubernetes/ingress-nginx development by creating an account on GitHub.
duncanmcnaught  5 days ago
With respect to the privacy concerns - we are wanting to set the ProxyProto on the deis router so we can get the client IP, that’s the whole point of our change.
duncanmcnaught  4 days ago
What are your current thoughts on adding this setting to workflow @cryptophobia?

I’m currently on vacation and can’t check, but isn’t the original Host header already kept intact?

I've checked the config and we already have proxy_set_header Host $host; in there, so setting X-Forwarded-Host $host in addition to that doesn't really make sense.
Is it possible that the requests are proxied by another app in your cluster that modifies the Host header?

Terminating TLS on ELB is problematic, since NGINX can no longer detect if the connection is using HTTPS or HTTP, which is likely the cause of your problem.
Theoretically this could be worked around by inspecting the destination port of the PROXY protocol header, but NGINX does not expose a variable for it ($proxy_protocol_port is the source port).
You can save yourself a lot if trouble by switching to TCP mode on the ELB.

See also https://trac.nginx.org/nginx/ticket/1206 which has a possible workaround:
There could be a flag in the router to signal external TLS termination and disable the ssl and http2 directives on the ports, that way you could forward TLS connections to these fake HTTPS ports and the router could identify HTTP and HTTPS based on the listening port that accepted the connection.
Your always loosing HTTP/2 Support if your terminating TLS on the ELB, which is another big argument against doing it.

I don't really understand how I would apply the workaround you mention above @felixbuenemann - can you elaborate?

Do you have a reference that I can quote regarding the HTTP/2 support on terminating TLS at ELB?
My group is terminating TLS at the ELB and I think we did not know about this limitation.  This seems like a decent reason to think about not doing it, as you say.  I just didn't see anything about this in the link you posted.  Is this an issue with ELBs only, or can ALBs still support the termination with HTTP/2 underneath?

@kingdonb You cannot handle HTTP/2 when termination TLS on an ELB (or NLB), because it requires ALPN negotiation for HTTP/2 on the ELB and even if that would work, NGINX has no idea what was negotiated.
It's possible to have a TLS terminating load balancer like HAproxy, that can negotiate ALPN and send the traffic to different ports on the origin, one port that handles plain HTTP/1 and one port that handles plain HTTP/2. However this would require a custom NGINX config for the Hephy Router.
ALB on the other hand is a Level 7 load balancer, so it does not support either TCP mode or TLS termination.
ALB does support HTTP/2, so it could be used, but you loose all the certificate management provided by Hephy, since you will have to manually manage certificates through ACM on the ALB load balancer.

Thanks for sharing. I had read that ALBs do support HTTP/2 but this is quite a bit more than I had understood before.

Your always loosing HTTP/2 Support if your terminating TLS on the ELB, which is another big argument against doing it.

I can attest to this. This is a problem that is not very well documented and had to solve this problem a couple of times.

Your always loosing HTTP/2 Support if your terminating TLS on the ELB, which is another big argument against doing it.

I can attest to this. This is a problem that is not very well documented.


alicloud data conncetor - re-implement with storage-queue

Change(s):
This is a full re-implementation of this function, since it's not resilient, can't handle high scale, and is very vulnerable to timeouts (which apparently, Ali endpoints have a tendency to cause in high scale).
In short, this function has been split into 2 functions (time triggered sends messages to storage queue, & queue triggered that handles each storage queue message).

TimeTrigger - Very similar to the existing function for GoogleWorkspaceReports.

Runs every X minutes (configurable), retrieves list of projects from Ali endpoint (if necessary; if customer included list of needed projects in config, no need) and creates a message in a new storage queue for every project + time window (by default 1 minute, can be changed by customer). Each message indicates a data-polling job that needs to be performed by the 2nd function. So if we run every 4 minutes for 2 projects, each run of the function will create 8 messages in the queue (and allow the 2nd function to run with 8 separate instances, one per queue message).
We rely on a bookmark to continue for each project from the previous date-range we scheduled. The difference from before is that now we have a bookmark per project, and not for entire run.
If storage queue has too many items (it indicates that the 2nd function isn't running or has a problem), we don't send more into the queue, so not to cause to much load. If queue has 1k items, our timer function will just wait until there's room in the queue (again, similar to the googleWS connector).
As in the previous version, we only schedule data retrieval for minimum 10-minutes ago from Ali cloud (this remained as before, since we don't want to miss late-arriving data in Ali, so if now is 8:00, we don't schedule message for 7:51, only for up to 7:50.

QueueTrigger - runs when a new message is received in the storage queue. Performs the data collection from Ali endpoint according to the data included in the message (project, time range).

Resiliency - on failure, this function has the ability to continue from almost exactly where it left off (to reduce duplicate data sent to LA and to reduce latency in case a given task just takes very long to complete). Thus, on every failure, we send a new message to the storage queue with the same details, but with additional fields that allows us not to query Ali again for a list of stores (since we already retrieved them), and also to continue from collecting data from the exact store we left off (assuming we finished getting logs from some of the stores & sending those logs to LA).
To do that, we now send to LA after finishing querying every store in the project (before, we first got data from all stores in the project, and only then sent to LA).
LA-post resiliency - previously, if we failed to send a given chunk of events to LA, we would only print an entry to the log and that's it. That's problematic since it's data loss for the customer that will probably get unnoticed. Instead, we now treat LA-send failures just like any other failures. We retry the function until max-retry, etc. Also, in case of transient failures for LA-send operations (http status >= 500 only), we perform up to 3 internal retry attempts (during same function execution, not causing the function to stop and waiting for a new run).
Failure handing - assuming we experienced a failure or caught an exception, our azure function doesn't throw an exception. Instead, we schedule a similar queue message (with invisibility of 1 min - so it's taken for retry in 1 minute) with same details and increased dequeue_count field and gracefully stop (so function doesn't appear as failed in azure; azure runtime will delete the original message on its own automatically). However, if dequeue_count reached 15, we move the message to a poison queue and do raise an exception so function does appear as failed. This way, there's less noise for the customer. They only see failures when they actually have data-loss due to exceeding their max re-tries of the function.
The customer can monitor the poison queue and also drain it and send to original queue if they wish (manually, not as part of the function).
If we didn't catch an exception (that shouldn't happen usually, unless the queue message is corrupt or missing mandatory fields, misconfiguration, etc.) so function failed unexpectedly or if there was a runtime failure of the entire function/function-app, we will rely on the azure-runtime internal resiliency capabilities to do the same. In other words, azure runtime itself will retry this message up to 15 attempts (configured in the host.json file; it reilies on a different dequeue_count field, the OOTB storage-queue one, not the one included in the message body). Here as well, if there are 15 failures for this message, azure runtime itself will move this message to the same poison-queue.

Timeout handling - both functions have an internal timeout mechanism that causes it to gracefully stop before the runtime timeout and kills the function on its own. So if we defined 10 minute runtime timeout, each function has 8-9 internal timeout; so if we reached that internal timeout mark, we gracefully stop. This allows us to continue from where we left off in the next retry, and also reduces the failure noise for the customer (again, if we get 15 straight timeouts on the message, it will not be re-tried and the function will be flagged as failed).

Change ARM template to have different env variables -

AliCloudWorkers - removed. No need as concurrency is now handled automatically by azure runtime (since one function per queue message).
MaxWindowSizePerApiCallInSeconds - determines the time range of each queue message. by default, 1 minute. It's helpful when there's high scale and retrieving X-seconds worth of data takes too long. So customer can increase if there aren't scale issues, and reduce it if there are.
MaxQueueMessageRetries - determines how many times the message is re-tried (due to caught exceptions and failures) before stopping and moving to poison queue. By default it's 15. Note that this does NOT change the number of retries for uncaught exceptions (and runtime failures), this cannot be dynamically configured (as it's defined in host file) and is always 15. However, in most cases, failures will be caught failures.
TimerCronSchedule - allows the customer to contorl how often the TimeTrigger functions runs. By default it's every 4 minutes.

Added mock for Ali SDK - this isn't used (commented out), but it's in the package for easier debugging (has same relevant interface as the Ali SDK).
Reason for Change(s):

In high scale, the function keeps failing on timeout as sometimes takes 10 minutes to retrieve 1 minute worth of data from Ali endpoints. Also, we need ability to run multiple function instances to improve latency (due to the latency mentioned above).

Version Updated:

No

Testing Completed:

Yes - Manual & with customer with high volume (with original timeouts issues).

Checked that the validations are passing and have addressed any issues that are present:

See guidance below

Yes
On Mon, May 20, 2024, 08:51 microsoft-github-policy-service[bot] <
@.***> wrote:

@hovavza https://github.com/hovavza please read the following
Contributor License Agreement(CLA). If you agree with the CLA, please reply
with the following information.
@microsoft-github-policy-service agree [company="{your company}"]
Options:

(default - no company specified) I have sole ownership of
intellectual property rights to my Submissions and I am not making
Submissions in the course of work for my employer.

@microsoft-github-policy-service agree

(when company given) I am making Submissions in the course of work
for my employer (or my employer has intellectual property rights in my
Submissions by contract or applicable law). I have permission from my
employer to make Submissions and enter into this Agreement on behalf of my
employer. By signing below, the defined term “You” includes me and my
employer.

@microsoft-github-policy-service agree company="Microsoft"
Contributor License Agreement Contribution License Agreement
This Contribution License Agreement (“Agreement”) is agreed to by the
party signing below (“You”),
and conveys certain license rights to Microsoft Corporation and its
affiliates (“Microsoft”) for Your
contributions to Microsoft open source projects. This Agreement is
effective as of the latest signature
date below.

Definitions.
“Code” means the computer software code, whether in human-readable
or machine-executable form,
that is delivered by You to Microsoft under this Agreement.
“Project” means any of the projects owned or managed by Microsoft
and offered under a license
approved by the Open Source Initiative (www.opensource.org).
“Submit” is the act of uploading, submitting, transmitting, or
distributing code or other content to any
Project, including but not limited to communication on electronic
mailing lists, source code control
systems, and issue tracking systems that are managed by, or on behalf
of, the Project for the purpose of
discussing and improving that Project, but excluding communication
that is conspicuously marked or
otherwise designated in writing by You as “Not a Submission.”
“Submission” means the Code and any other copyrightable material
Submitted by You, including any
associated comments and documentation.
Your Submission. You must agree to the terms of this Agreement
before making a Submission to any
Project. This Agreement covers any and all Submissions that You, now
or in the future (except as
described in Section 4 below), Submit to any Project.
Originality of Work. You represent that each of Your Submissions
is entirely Your original work.
Should You wish to Submit materials that are not Your original work,
You may Submit them separately
to the Project if You (a) retain all copyright and license information
that was in the materials as You
received them, (b) in the description accompanying Your Submission,
include the phrase “Submission
containing materials of a third party:” followed by the names of the
third party and any licenses or other
restrictions of which You are aware, and (c) follow any other
instructions in the Project’s written
guidelines concerning Submissions.
Your Employer. References to “employer” in this Agreement include
Your employer or anyone else
for whom You are acting in making Your Submission, e.g. as a
contractor, vendor, or agent. If Your
Submission is made in the course of Your work for an employer or Your
employer has intellectual
property rights in Your Submission by contract or applicable law, You
must secure permission from Your
employer to make the Submission before signing this Agreement. In that
case, the term “You” in this
Agreement will refer to You and the employer collectively. If You
change employers in the future and
desire to Submit additional Submissions for the new employer, then You
agree to sign a new Agreement
and secure permission from the new employer before Submitting those
Submissions.
Licenses.

Copyright License. You grant Microsoft, and those who receive the
Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive,
royalty-free, irrevocable license in the
Submission to reproduce, prepare derivative works of, publicly
display, publicly perform, and distribute
the Submission and such derivative works, and to sublicense any or all
of the foregoing rights to third
parties.
Patent License. You grant Microsoft, and those who receive the
Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive,
royalty-free, irrevocable license under
Your patent claims that are necessarily infringed by the Submission or
the combination of the
Submission with the Project to which it was Submitted to make, have
made, use, offer to sell, sell and
import or otherwise dispose of the Submission alone or with the
Project.
Other Rights Reserved. Each party reserves all rights not
expressly granted in this Agreement.
No additional licenses or rights whatsoever (including, without
limitation, any implied licenses) are
granted by implication, exhaustion, estoppel or otherwise.

Representations and Warranties. You represent that You are
legally entitled to grant the above
licenses. You represent that each of Your Submissions is entirely Your
original work (except as You may
have disclosed under Section 3). You represent that You have secured
permission from Your employer to
make the Submission in cases where Your Submission is made in the
course of Your work for Your
employer or Your employer has intellectual property rights in Your
Submission by contract or applicable
law. If You are signing this Agreement on behalf of Your employer, You
represent and warrant that You
have the necessary authority to bind the listed employer to the
obligations contained in this Agreement.
You are not expected to provide support for Your Submission, unless
You choose to do so. UNLESS
REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE
WARRANTIES
EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED
UNDER THIS AGREEMENT IS
PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO,
ANY WARRANTY OF
NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
Notice to Microsoft. You agree to notify Microsoft in writing of
any facts or circumstances of which
You later become aware that would make Your representations in this
Agreement inaccurate in any
respect.
Information about Submissions. You agree that contributions to
Projects and information about
contributions may be maintained indefinitely and disclosed publicly,
including Your name and other
information that You submit with Your Submission.
Governing Law/Jurisdiction. This Agreement is governed by the
laws of the State of Washington, and
the parties consent to exclusive jurisdiction and venue in the federal
courts sitting in King County,
Washington, unless no federal subject matter jurisdiction exists, in
which case the parties consent to
exclusive jurisdiction and venue in the Superior Court of King County,
Washington. The parties waive all
defenses of lack of personal jurisdiction and forum non-conveniens.
Entire Agreement/Assignment. This Agreement is the entire
agreement between the parties, and
supersedes any and all prior agreements, understandings or
communications, written or oral, between
the parties relating to the subject matter hereof. This Agreement may
be assigned by Microsoft.

—
Reply to this email directly, view it on GitHub
https://github.com/Azure/Azure-Sentinel/pull/10497#issuecomment-2119717055,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDGCW5LTO5VSOG74DF3ZV4TZDGFOPAVCNFSM6AAAAABH7CS7XKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJZG4YTOMBVGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

@microsoft-github-policy-service agree company="Microsoft"
בתאריך יום ב׳, 20 במאי 2024 ב-9:06 מאת
microsoft-github-policy-service[bot] @.***>:

@hovavza https://github.com/hovavza please read the following
Contributor License Agreement(CLA). If you agree with the CLA, please reply
with the following information.
@microsoft-github-policy-service agree [company="{your company}"]
Options:

(default - no company specified) I have sole ownership of
intellectual property rights to my Submissions and I am not making
Submissions in the course of work for my employer.

@microsoft-github-policy-service agree

(when company given) I am making Submissions in the course of work
for my employer (or my employer has intellectual property rights in my
Submissions by contract or applicable law). I have permission from my
employer to make Submissions and enter into this Agreement on behalf of my
employer. By signing below, the defined term “You” includes me and my
employer.

@microsoft-github-policy-service agree company="Microsoft"
Contributor License Agreement Contribution License Agreement
This Contribution License Agreement (“Agreement”) is agreed to by the
party signing below (“You”),
and conveys certain license rights to Microsoft Corporation and its
affiliates (“Microsoft”) for Your
contributions to Microsoft open source projects. This Agreement is
effective as of the latest signature
date below.

Definitions.
“Code” means the computer software code, whether in human-readable
or machine-executable form,
that is delivered by You to Microsoft under this Agreement.
“Project” means any of the projects owned or managed by Microsoft
and offered under a license
approved by the Open Source Initiative (www.opensource.org).
“Submit” is the act of uploading, submitting, transmitting, or
distributing code or other content to any
Project, including but not limited to communication on electronic
mailing lists, source code control
systems, and issue tracking systems that are managed by, or on behalf
of, the Project for the purpose of
discussing and improving that Project, but excluding communication
that is conspicuously marked or
otherwise designated in writing by You as “Not a Submission.”
“Submission” means the Code and any other copyrightable material
Submitted by You, including any
associated comments and documentation.
Your Submission. You must agree to the terms of this Agreement
before making a Submission to any
Project. This Agreement covers any and all Submissions that You, now
or in the future (except as
described in Section 4 below), Submit to any Project.
Originality of Work. You represent that each of Your Submissions
is entirely Your original work.
Should You wish to Submit materials that are not Your original work,
You may Submit them separately
to the Project if You (a) retain all copyright and license information
that was in the materials as You
received them, (b) in the description accompanying Your Submission,
include the phrase “Submission
containing materials of a third party:” followed by the names of the
third party and any licenses or other
restrictions of which You are aware, and (c) follow any other
instructions in the Project’s written
guidelines concerning Submissions.
Your Employer. References to “employer” in this Agreement include
Your employer or anyone else
for whom You are acting in making Your Submission, e.g. as a
contractor, vendor, or agent. If Your
Submission is made in the course of Your work for an employer or Your
employer has intellectual
property rights in Your Submission by contract or applicable law, You
must secure permission from Your
employer to make the Submission before signing this Agreement. In that
case, the term “You” in this
Agreement will refer to You and the employer collectively. If You
change employers in the future and
desire to Submit additional Submissions for the new employer, then You
agree to sign a new Agreement
and secure permission from the new employer before Submitting those
Submissions.
Licenses.

Copyright License. You grant Microsoft, and those who receive the
Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive,
royalty-free, irrevocable license in the
Submission to reproduce, prepare derivative works of, publicly
display, publicly perform, and distribute
the Submission and such derivative works, and to sublicense any or all
of the foregoing rights to third
parties.
Patent License. You grant Microsoft, and those who receive the
Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive,
royalty-free, irrevocable license under
Your patent claims that are necessarily infringed by the Submission or
the combination of the
Submission with the Project to which it was Submitted to make, have
made, use, offer to sell, sell and
import or otherwise dispose of the Submission alone or with the
Project.
Other Rights Reserved. Each party reserves all rights not
expressly granted in this Agreement.
No additional licenses or rights whatsoever (including, without
limitation, any implied licenses) are
granted by implication, exhaustion, estoppel or otherwise.

Representations and Warranties. You represent that You are
legally entitled to grant the above
licenses. You represent that each of Your Submissions is entirely Your
original work (except as You may
have disclosed under Section 3). You represent that You have secured
permission from Your employer to
make the Submission in cases where Your Submission is made in the
course of Your work for Your
employer or Your employer has intellectual property rights in Your
Submission by contract or applicable
law. If You are signing this Agreement on behalf of Your employer, You
represent and warrant that You
have the necessary authority to bind the listed employer to the
obligations contained in this Agreement.
You are not expected to provide support for Your Submission, unless
You choose to do so. UNLESS
REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE
WARRANTIES
EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED
UNDER THIS AGREEMENT IS
PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO,
ANY WARRANTY OF
NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
Notice to Microsoft. You agree to notify Microsoft in writing of
any facts or circumstances of which
You later become aware that would make Your representations in this
Agreement inaccurate in any
respect.
Information about Submissions. You agree that contributions to
Projects and information about
contributions may be maintained indefinitely and disclosed publicly,
including Your name and other
information that You submit with Your Submission.
Governing Law/Jurisdiction. This Agreement is governed by the
laws of the State of Washington, and
the parties consent to exclusive jurisdiction and venue in the federal
courts sitting in King County,
Washington, unless no federal subject matter jurisdiction exists, in
which case the parties consent to
exclusive jurisdiction and venue in the Superior Court of King County,
Washington. The parties waive all
defenses of lack of personal jurisdiction and forum non-conveniens.
Entire Agreement/Assignment. This Agreement is the entire
agreement between the parties, and
supersedes any and all prior agreements, understandings or
communications, written or oral, between
the parties relating to the subject matter hereof. This Agreement may
be assigned by Microsoft.

—
Reply to this email directly, view it on GitHub
https://github.com/Azure/Azure-Sentinel/pull/10497#issuecomment-2119732790,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDGCW5LV5ZULEOGC6AQR3I3ZDGHIDAVCNFSM6AAAAABH7CS7XKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJZG4ZTENZZGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

We wanted to check on the status of PR #10497. PR is pending for more than 30 days in draft state. Please let us know if you need any assistance to review this PR. Per our standard operating procedures if no response is received in the next 5 business days, we will close this PR. Thank you for your cooperation.

Since we have not received a response in the last 7 days, we are closing your PR #10497 per our standard operating procedures. If you still need support for this issue, you can re-open the PR at any time.
If you do re-open, we simply request that you ensure the PR has response to the last request. Thank you for your cooperation.


buildstream goes into the background after entering a shell

At the failed build prompt, answer s to get to a shell. When exiting the shell, bst prints the prompt again and goes to the background (or maybe is already in the background when it prints the prompt), and I need to run fg to get back to it.

I have also sen variation of this where BuildStream is not in background until after you exit the shell.

I have also sen variation of this where BuildStream is not in background until after you exit the shell.

I have only seen this variation (recently), years ago I saw the other.
This is tricky to get right and may depend on the shell implementation in the sandbox IIRC

I'm not sure what you mean by "BuildStream is not in background until after you exit the shell" as I don't see what's the difference with what I said.

I must have misread the issue. Yes, this is ongoing


Using CSV getting ERROR: 403: Not Authorized to access this resource/api - forbidden

I can delete a user using a single GAM command as well as using the command prompt FOR loop method.
If I try to use the CSV method i get:
ERROR: 403: Not Authorized to access this resource/api - forbidden
One user MAY get deleted, but the rest fail.
Any ideas?

Please show the command you are using, the header row and the first line of the CSV file.
Ross
<EMAIL_ADDRESS>
On Mar 25, 2019, at 6:13 AM, neckhardt1<EMAIL_ADDRESS>wrote:
I can delete a user using a single GAM command as well as using the command prompt FOR loop method.
If I try to use the CSV method i get:
ERROR: 403: Not Authorized to access this resource/api - forbidden
One user MAY get deleted, but the rest fail.
Any ideas?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/jay0lee/GAM/issues/868, or mute the thread https://github.com/notifications/unsubscribe-auth/AIU8L1HqgtO6EtG3kuSPmtJQJ0kqCtBvks5vaMuVgaJpZM4cG2hd.

Command:  gam csv gam2.txt gam delete user ~Email
File contents:
Email
<EMAIL_ADDRESS>Neal

Neal,
Are there trailing blanks on the data lines?
Ross

It appears that yes! There is one trailing blank. The data was copied from a spreadsheet.
Neal

Does it work after stripping the trailing blank?
Ross

That did seem to make all the difference in the world!
Thanks!


[Question]: How setup / code multi browser testing

Your question
Is there an example to run tests cross-browser Playwright tests in parallel with CI/CD like azure devops? Or Do I need a third party-tool?

but with nunit is only one browsser, doesn't include any option to run the same test with command line parameters some like
dotnet test BROWSER=webkit chromium firefox
in the sample you need to execute the command 3 times

@apis3445: you can execute the test multiple times with different environment variable, as the browser type is determined by environment variable: https://github.com/microsoft/playwright-dotnet/blob/45de47f3f51c086278b347e09a878731d996e2e5/src/Playwright.NUnit/PlaywrightTest.cs#L33.
This is quite easy in CD pipelines, not so easy in local development environment as of now.
Alternatively, you can write tests class without inheriting from PageBase and create your own Playwright/Browser/Page instances.
You can use something like [TestCaseSource] attribute in NUnit, or   [DynamicData] in order to execute the same test with different parameter. In you case the parameter would be a browser name

Closing since it seems answered. The recommended approach is execute it multiple times by invoking it multiple times via the CLI.

In CI/CD you only have one environment variable, you will need one pipeline for each browser and url to test or run yhe pipelines a lot of times to setup. I was wondering only to use the same approach like saucelabs. The same test can run in parallel with different browsers

You can modify environment variable after each run in the same pipeline using .runsettings file.
Anyway, this is related to test runner, not so much to playwright (although I agree the environment variable should not be the only option to configure the test)

But the environment is only for one test, at the moment the third party tools can't offer support to playwright for .net, and in the pipelines, I can't set up one pipeline to run in parallel in 4 browsers with 4 different environment, somethin like selenium grid too

https://docs.github.com/en/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
That's e.g. how you can do it with GitHub Actions. Running them after each other is also a solution which works on every CI provider.

@apis3445 : you can pass different environment variables to each test run. Just google it

I know how to passs different environment but I don't like to use one pipeline for each environment.


[bug] vue3

Link to minimal reproducible example
Create a new vue3ts project and add dependencies
Summary

List of related npm package versions
"@web3modal/ethers5": "^5.1.2",

we are aware about this issue ... please use v5.1.2
https://linear.app/walletconnect/issue/APKT-1040/[bug]-cant-build-ethers5-latest-version-using-vue-since-v513

fixed in latest version


Caching

Is sessionState as "SQL server" supported?
I mean standard aspStateDB base in SQL server to store session between IIS instances in farm.
Now farm balance load between servers and Authorization lost very often

There is nothing that prevents you from using session state in Serenity, be it inproc or sql. But i strongly recommend avoiding session state. In my applications, session state is always off and i had no problem ever even with 40 server web farms. Forms authentication uses a cookie. If you need a state per user, like shopping cart, you can keep it in db yourself.

Ohh, forgot add

to the <system.web>
Now all good!


Doesnt find player searched for

Since yesterday The Bot doesnt find any players, i have searched for. even if i improve the price. Some days ago it worked well
Sometimes it finds random players. Like if i search for Ronaldo the Bot shows me Messi, even if he doesnt fit the criteria.
I tried to reinstall everything still doesnt work, but if i use my macbook it works. Maybe you now the issue

.

In Enhancer settings, if you have given any value for Rating field, clear it.


chore(docs): New guides on deploying to DigitalOcean

Preview: https://deploy-preview-77--electric-sql-website.netlify.app/docs/integrations/deployment/digital-ocean

Closes VAX-1314

@thruflo Thanks for the feedback, really on point!

One note is that the link to a readme to then click the one click button is a somewhat unusual way of rendering and clicking a button. Is there a reason for it? Could we not just embed the button?

That's just a POC to have the button displayed somewhere. Should I put the button right inside the relevant doc section as a start?

Another minor note is that I see electric-sql/website#77 but I don't see the DO icon being added to static. We need it for the listing page.

Good catch! I'll fix that.

1. can you create a DO PG when you create the app? If so, can we create a one-click button with and a 1-click button without PG and then with PG can we in any way auto-configure the DATABASE_URL env var?

It's possible to add a managed DB as part of configuring a DO App, so we can also preconfigure it for the 1-click button. One caveat is that it creates a dev DB this way which can be upgraded to a production setup after the app is created. Adding a managed database as part of the app setup process will inject a DATABASE_URL variable into the web component of the app automatically, I believe.

2. can you configure the Docker droplet to deploy the docker image _and_ a PG? And can you again auto set any env vars? If not, we definitely can create a marketplace droplet that does both and I suspect has the DATABASE_URL available automatically

From what I'm seeing, it's not possible to create a Droplet and a managed DB at the same time. We'll need to create a custom Marketplace image for this. DATABASE_URL will be injected into the droplet automatically if the developer chooses to created the DB together with the droplet.

I'm not too keen on the idea of hosting the static website along with Electric on DO. On the App Platform the two will be competing for the same HTTP port, unless they are two separate apps. In Droplet's case, there won't be a builtin mechanism to publish new builds of the static website. Maybe there's something we could do by marrying DO's Spaces and CDN but it's not something we can bundle with Droplet creation and IMO it won't be nearly as convenient as using Netlify or Vercel.

Should I put the button right inside the relevant doc section as a start?

Yup :)

It's possible to add a managed DB as part of configuring a DO App, so we can also preconfigure it for the 1-click button.

Awesome -- let's have two buttons. One with, one without.

From what I'm seeing, it's not possible to create a Droplet and a managed DB at the same time. We'll need to create a custom Marketplace image for this. DATABASE_URL will be injected into the droplet automatically if the developer chooses to created the DB together with the droplet.

Makes me very happy because then there's a clear reason why Electric specific droplet(s). Let's do this!

I'm not too keen on the idea of hosting the static website along with Electric on DO.

Yes, have you looked at their static site hosting offering with app platform? Maybe this is a third separate button? I would love for that to auto-populate the env vars needed for build. But maybe that's not possible.

We cannot run both the static site and Electric in the same app, so no "full-stack button" targeting app platform.
I tried setting up a stand-alone next.js sampe as a DO app, the experience is similar to that of Heroku.

Do DO provide a git|cli push -> build app -> deploy static site option? If so, perhaps we could add a section to the doc that shows how to do this on DO, once you have the backend deployed?
If not, then let's skip this idea.

Do DO provide a git|cli push -> build app -> deploy static site option?

Yes.

@thruflo I've pushed a new commit that adds a few corrections to the draft version you reviewed. The "Deploy to DO" button references the new public repo I created at electric-sql/deploy-to-do. We can have as many variants of the button as we want, each one can be defined as a separate branch in that repo.
Regarding your proposal to include a managed database in the 1-click install, I couldn't get that to work. Currently awaiting a resolution from DO's support team.
Regarding the static website hosting on DO App Platform, I've created VAX-1422 to track that.


Math operator commands

Requested on the forum

This can now be done using Lua scripting, which provides a full maths library.


primitives: rm alloy_consensus::transaction reexports

crates/rpc/rpc-types-compat/src/transaction/typed.rs
this file has been removed


micro_synteny_search exceeding redis maxclients limit

This is not a common problem, but happened to come up relative to a region of interest for a collaborator's PhD student and a paper he's trying to write up. Full stack trace at the end of this post but ,y reading of the situation based on the code around this part of the stack trace:
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/micro_synteny_search/request_handler.py", line 69, in _queryToChromosomeGeneMatchIndexes
micro_synteny_search_1           |     result = await gene_index.search(query)

is that there is a gene in the region that belongs to a large gene family and this combined with the fact that the data source that's throwing the error (medicago) contains many highly fragmented genomes means that when the initial query is made for "chromosomes" with any matching gene families, the resource limit is being triggered (not sure I entirely understand why many "clients" are being spawned, but taking the error message at its word on that).
The most obvious thing to do is try to increase the maxclients setting in redis, but although I made an attempt at this, the error message I'm getting
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/redis/asyncio/connection.py", line 861, in read_response
micro_synteny_search_1           |     raise response from None
micro_synteny_search_1           | redis.exceptions.ResponseError: LIMIT exceeds maximum of 10000

still indicates that I'm exceeding the default limit of 10000, though this result
sudo docker exec -ti medicago_redis_1 redis-cli config get maxclients
1) "maxclients"
2) "50000"

suggests that my attempt to hack the increased --maxclients setting into the compose.yml file did in fact change it as intended. I am probably getting confused about something here- let me know if you have any thoughts about it when you're back @alancleary
If that server-side tweak ultimately works, it may be adequate as a solution (not suggesting we change the default, but could configurable via .env/document it for other service admins in future); but, we could also consider whether the parameters we added to exclude contigs below a certain size for the macrosynteny search might not also be applicable to the microsynteny search (so poor PhD students don't have to rely on crusty old service admins to get their work done...)
full stack trace (from services running under gcv-docker-compose-2.6.0-c0)
micro_synteny_search_1           | 17:54:40,759 ERROR: Error in callback for method [/legumeinfo.microservices.microsyntenysearch_service.v1.MicroSyntenySearch/Search]
micro_synteny_search_1           | Traceback (most recent call last):
micro_synteny_search_1           |   File "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi", line 735, in grpc._cython.cygrpc._add_callback_handler.handle_callbacks
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/micro_synteny_search/grpc_server.py", line 25, in exceptionCallback
micro_synteny_search_1           |     raise exception
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/micro_synteny_search/grpc_server.py", line 55, in Search
micro_synteny_search_1           |     return await self._search(request, context)
micro_synteny_search_1           |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/micro_synteny_search/grpc_server.py", line 38, in _search
micro_synteny_search_1           |     tracks = await self.handler.process(query, matched, intermediate)
micro_synteny_search_1           |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/micro_synteny_search/request_handler.py", line 105, in process
micro_synteny_search_1           |     chromosome_match_indexes = await self._queryToChromosomeGeneMatchIndexes(query_track, gene_index)
micro_synteny_search_1           |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/micro_synteny_search/request_handler.py", line 69, in _queryToChromosomeGeneMatchIndexes
micro_synteny_search_1           |     result = await gene_index.search(query)
micro_synteny_search_1           |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/redis/commands/search/commands.py", line 889, in search
micro_synteny_search_1           |     res = await self.execute_command(SEARCH_CMD, *args)
micro_synteny_search_1           |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 505, in execute_command
micro_synteny_search_1           |     return await conn.retry.call_with_retry(
micro_synteny_search_1           |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry
micro_synteny_search_1           |     return await do()
micro_synteny_search_1           |            ^^^^^^^^^^
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 481, in _send_command_parse_response
micro_synteny_search_1           |     return await self.parse_response(conn, command_name, **options)
micro_synteny_search_1           |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/redis/asyncio/client.py", line 524, in parse_response
micro_synteny_search_1           |     response = await connection.read_response()
micro_synteny_search_1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
micro_synteny_search_1           |   File "/usr/local/lib/python3.11/site-packages/redis/asyncio/connection.py", line 861, in read_response
micro_synteny_search_1           |     raise response from None
micro_synteny_search_1           | redis.exceptions.ResponseError: LIMIT exceeds maximum of 10000

quick follow-up; this may be a total coincidence but I happened to notice in the logs for the medicago_redis_1 container this startup info:
<search> concurrent writes: OFF, gc: ON, prefix min length: 2, prefix max expansions: 200, query timeout (ms): 500, timeout policy: return, cursor read size: 1000, cursor max idle (ms): 300000, max doctable size: 1000000, max number of search results:  10000, search pool size: 20, index pool size: 8
so wondering whether the "LIMIT exceeds maximum of 10000" is not referring to redis maxclients but instead redisearch query result limits; seems likely, but need to figure out how to configure this to test the hypothesis.

OK, yes that was indeed it; after
sudo docker exec -ti medicago_redis_1 redis-cli FT.CONFIG SET MAXSEARCHRESULTS 100000
the previously broken search started working just fine. But I will leave this issue open until we decide whether it makes sense to make this aspect configurable via .env or whether something else is a better solution long-term.

Just to be clear, at first you thought the limit in the error message was the number of concurrent Redis connections (like in gcv-docker-compose issue #14) but it now seems to be the max number of search results returned by a Redisearch query? If it is the Redisearch max number of results then I think it's worth pursuing a solution that doesn't require tuning by site admins.
One soluton that comes straight to mind is paginating the Redisearch results. We know the number of genes we're asking for so it would be pretty straightforward to update the code to cobble together our set of genes by querying all the necessary pages so we don't exceed the query result limit. I'm wondering if the limit is something we can fetch from the Redis server when the microservice starts up so we don't have to hard-code it. This would help us avoid issues if Redisearch's default value for the limit ever changes.

yes, it's the redisearch max search results limit that seems to be the problem here.
I was also wondering whether paging might address this in a way that lets us effectively be unlimited (without special config). I would think that
redis-cli FT.CONFIG GET MAXSEARCHRESULTS
would give you the needed value but having just tried it I get a value of 1000000 returned which seems at odds with the behavior that led me to tweak it in the first place. Anyway, in the master triage list of GCV-related issues, I'd say this one is not too urgent, but certainly nice to have fixed if easy enough to knock out. Thanks for following up

It looks like that command is also available in the Redisearch Python library. I guess we'll have to verify if this actually a reliable way to go...


LuCI MVC framework standalone?

I've read that LuCI, in addition to being a web ui for managing OpenWRT routers, is also supposed to be a MVC framework for embedded development. I see the documentation via github for modules and such. However, it seems to allude to the fact that I have to include at least some of the web ui in if i just write my app with a module (I see files in htdocs in even the luci-base module).
Is there anyway to leverage the existing framework for dealing with things like POST data, URL dispatch, and such without having to include any part of LuCI's web UI?

No, the current packaging will always include some ui assets atm.


This could be added as an environment variable

https://github.com/Lambda-School-Labs/foster-together-fe/blob/f84bb77f97e82a1695f676b51844b7a496359c78/src/Auth/axiosWithBaseUrl.js#L4

Also
https://github.com/Lambda-School-Labs/foster-together-fe/blob/f84bb77f97e82a1695f676b51844b7a496359c78/src/components/AdminDash/AdminDashboard.js#L20
and
https://github.com/Lambda-School-Labs/foster-together-fe/blob/f84bb77f97e82a1695f676b51844b7a496359c78/src/components/AdminDash/AdminDashboard.js#L30

And
https://github.com/Lambda-School-Labs/foster-together-fe/blob/f84bb77f97e82a1695f676b51844b7a496359c78/src/components/AdminDash/UsersProfile.js#L9

Is being corrected by Bianca this morning (3/5)

Converted to variables in this pull request: https://github.com/Lambda-School-Labs/foster-together-fe/pull/26


re-write as ammonia plugin actually instead.

Ammonia injector exists.
Just re-write as an ammonia plugin.
Instead of a .bundle, we're going to write a .dylib, and include a .blacklist file which specifies what the plugin won't inject.

This is actively in progress.

Well. Consider it done.


[CR] Add support for POWER8/VSX

Description
Add support for Power8 and VSX instructions in order to resolve the issue #1

Checklist:

[x] Detect PPC toolchain
[x] Enable VSX flags when available
[x] Check at runtime if Linux has VSX feature enabled
[x] Generate appropriate headers for PPC port

The set looks ok, could you please squash it in a single commit?

What are the plans to integrate with upstream? Will you create an unique PR or for each feature?

Probably I'd send a first set with your patch and some initial code using it and then trickle in further improvements, no need to push a single monster set.

Did you sign the CLA? I was waiting for your ok to send over something and see how upstream takes it :)

Hello, I already did it's all right :D


C API

Hi @PeterRK
How can I use it from plain C ?
Thanks

Pure C is not supported, which means C++ compiler is always needed. But it is easy to wrap C++ api to get plain C api.


Empty scene with no lights fails to render

There is weird behaviour in Editor where scene with single model, no lights and no grid (in editor settings set grid to 0,0), will print some webgl warnings to console, and will not render entity until it is selected, or light is enabled.
https://playcanvas.com/editor/scene/456773

This error can be related to the grid implementation (attempts to render something when divisions = 0?) given that it's not reproducible in Launch. Grid is not part of the engine, so I'm not quite sure how it's implemented.

Will debug it in Editor then.

I can't reproduce this so I'm closing it.


2206 email ruleset

These are two new rules for dealing with email related protocol remote commands (smtp/pop3/imap4).

New rule 932300 tries to capture base commands that are different enough from common English words to prevent FP
New rule 932310 is a stricter sibling in PL3 with all the remaining commands

Still to be defined to be considered for merging:

the prefix/suffix for matching commands
tests!

Cool stuff. Thank you.

What do you mean by "the prefix/suffix for matching commands"
PL3 rule sets PL2 score

Prefix/suffix as the ones we use for generating the rule with regexp-assembly.py (opening regex/closing regex). Originally @NiceYouKnow wrote prefix (?s)\r\n.*?\b, and suffix \b and you added prefix (^|[\r\n]) and suffix \s. Maybe @azurit has some other idea 😄

Gotcha. Thanks.
Please fix the scoring PL for the 2nd rule.

Thanks

Ok, first pass on splitting the rules.

The SMTP rules are probably mostly at PL2, because most of the commands are short and don't match an English word
Added tests for SMTP
IMAP rules will be mostly at PL3 probably. Still need to refactor this one a bit, but most commands are simple English words prone to FP.
Still need to review POP3, but will be similar to SMTP mostly.

This looks good. Thank you.
Few items:

RFC 5321 lacks a link (unlike other RFC mentioned)
not sure if you should escape the space in the NOOP regex

Added link per comment
Added POP3 in PL2 and PL3
IMAP4 is more complex protocol, still parsing it

🎄 Email ruleset!

I'm still in doubt about the initial \r\n. What if it is in the end instead?

Hey @spartantri ! Did you take a look at this one?

Meeting decision March 7: merge this PR and continue the conversation about the LF/CR afterwards.


Room seems to be ignoring its size

When adding users to a room using Room.addMember(user), the room allows an unlimited number of players to join and always returns "true", even though its room size shouldn't be allowing it.

Hi @nitzanbueno, I'm not actively maintaining this project at this time, but if you want to take a look the problem may be that the room size isn't consider in addMember in this file: https://github.com/incompl/cloak/blob/master/src/server/cloak/room.js


aws_ros1_common: 2.0.0-0 in 'melodic/distribution.yaml' [bloom]

Increasing version of package(s) in repository aws_ros1_common to 2.0.0-0:

upstream repository: https://github.com/aws-robotics/utils-ros1.git
release repository: https://github.com/aws-gbp/aws_ros1_common-release.git
distro file: melodic/distribution.yaml
bloom version: 0.7.2
previous version for package: null

aws_ros1_common
* Remove legacy portions of the ParameterReader API (#9 <https://github.com/aws-robotics/utils-ros1/issues/9>)
* Update ParameterReader API to support ROS1/ROS2 (#8 <https://github.com/aws-robotics/utils-ros1/issues/8>)
  * Revert "Revert ParameterReader change (#5 <https://github.com/aws-robotics/utils-ros1/issues/5>)"
  * refactor based on new ParameterPath object design
* Revert ParameterReader change (#5 <https://github.com/aws-robotics/utils-ros1/issues/5>)
  * Revert "Parameter Namespacing: Refactoring using the ParameterPath object. (#3 <https://github.com/aws-robotics/utils-ros1/issues/3>)"
  This reverts commit 295f157b32a321e230ef1c7f616ad5abd1bece5e.
  https://github.com/aws-robotics/utils-common/issues/15
* Parameter Namespacing: Refactoring using the ParameterPath object. (#3 <https://github.com/aws-robotics/utils-ros1/issues/3>)
  * Refactoring using the ParameterPath object.
  * Minor test fixes in parameter_reader_test.cpp
  * Adding failure test case for Ros1NodeParameterReader.
  * Bumping major version in package.xml
  * address comments in PR
  * update .travis.yml to build dependencies from latest source
* Contributors: AAlon, M. M

The build for this seems to fail with:
08:57:55   1645 'Unpacking ros-melodic-catkin (0.7.17-0bionic.20190318.174702) ...'
08:57:55   1646 'dpkg: error processing archive /tmp/apt-dpkg-install-VYbYEW/326-ros-melodic-catkin_0.7.17-0bionic.20190318.174702_amd64.deb (--unpack):'
08:57:55   1647 ' trying to overwrite '/opt/ros/melodic/.catkin', which is also in package ros-melodic-aws-common 2.0.0-1bionic.20190320.031845'
08:57:55   1648 'dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)'

08:57:55   1739 'Errors were encountered while processing:'
08:57:55   1740 ' /tmp/apt-dpkg-install-VYbYEW/326-ros-melodic-catkin_0.7.17-0bionic.20190318.174702_amd64.deb'
08:57:55   1741 'E: Sub-process /usr/bin/dpkg returned an error code (1)'

@clalancette @tfoote Any clue what might be the problem?
Thanks!

The short answer is that your package is generating a `/opt/ros/melodic/.catkin' which is colliding with the  one that catkin installs. I'll dig deeper to see if I can see where that's being generated.

The difference is that you appear to not to have the default ROS1 arguments pass into the rules file:
Compare: https://github.com/aws-gbp/aws_ros1_common-release/blob/3534e704ecd5ff02a466e44375712b67c870da59/debian/rules#L29-L32 which is the standard ROS1 options for dh_auto_configure to https://github.com/aws-gbp/aws_common-release/blob/3fa5902f8899eaf37b4def6a06ccaea60d0f77dc/debian/rules#L29

The difference is that you appear to not to have the default ROS1 arguments pass into the rules file:
Compare: https://github.com/aws-gbp/aws_ros1_common-release/blob/3534e704ecd5ff02a466e44375712b67c870da59/debian/rules#L29-L32 which is the standard ROS1 options for dh_auto_configure to https://github.com/aws-gbp/aws_common-release/blob/3fa5902f8899eaf37b4def6a06ccaea60d0f77dc/debian/rules#L29

I've looked and this discrepancy is nothing new, it was this way in previous releases as well. It might be because aws_common has <build_type>cmake</build_type> i.e. it's not coupled with a ROS distro? Not sure.

Yes, the difference in those flags are what's expected from a catkin versus cmake build type.
However I see that the package is now using catkin in the CMakeLists.txt
https://github.com/aws-robotics/utils-common/blob/756b8bf89006500700828bdf88e7da12f12cbedd/aws_common/CMakeLists.txt#L65
Since catkin appears to be in the cmake by default I'd suggest switching the build type over. Otherwise you would need to change the default build to not trigger catkin.

Yes, the difference in those flags are what's expected from a catkin versus cmake build type.
However I see that the package is now using catkin in the CMakeLists.txt
https://github.com/aws-robotics/utils-common/blob/756b8bf89006500700828bdf88e7da12f12cbedd/aws_common/CMakeLists.txt#L65
Since catkin appears to be in the cmake by default I'd suggest switching the build type over. Otherwise you would need to change the default build to not trigger catkin.

Aha, well we're using it solely for the test macros, it definitely shouldn't create a marker file upon find_package.
I'm trying to work around that by manipulating some variables, like setting _CATKIN_CONFIG_ALL_INCLUDED_, but that prevents the catkin_destinations file from being included (which is a prerequisite of the gtest macros) :\
If we do change the build type to catkin, would this affect dependent packages? e.g. cloudwatch_logs_common depends on aws_common, would we need to change its build type from cmake to catkin as well?
Btw if we go with this approach we'll need to use conditionals like the following, which I believe are supported:
<build_type condition="$ROS_VERSION == 1">catkin</build_type>
<build_type condition="$ROS_VERSION == 2">ament_cmake</build_type>

Actually, I think just set(CATKIN_INSTALL_INTO_PREFIX_ROOT FALSE) before find_package(catkin) could solve it. Not sure how to test it though seeing as the prerelease builds succeeded.

https://github.com/ros/rosdistro/pull/20654
https://github.com/ros/rosdistro/pull/20653


replace user defined UInt64 with builtin ones

Pull Request Test Coverage Report for Build 2135
Details

5 of 9 (55.56%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 91.499%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

strconv/number.mbt
4
8
50.0%

Totals

Change from base Build 2129:
0.2%

Covered Lines:
3584

Relevant Lines:
3917

💛  - Coveralls


recently sent reminders

log them to eventually show them in the user dashboard. Or to make it simpler, just look at past holidays and assume reminders were sent.

duplicate of #75


Cleanup jshint errors across application

This PR cleans up all jshint errors seen when building the application:

update .jshintrc to allow unused function parameters
add missing semicolons
remove unused variables and imports
remove duplicate functions/keys
use global jshint in files using moment, L
replace deprecated escape function with encodeURI
miscellaneous other jshint errors

Additional Note: I'm using Sublime and have the editorconfig plugin installed (ember-cli projects include a .editorconfig file). It looks like some of the files I opened to make edits to also got a few automatic edits from editorconfig, like cleaning up trailing whitespaces.

Thank you very much for submitting this PR @nselikoff! We really appreciate your contribution to Mobility Explorer 😄

You're welcome @meghanhade 🚌  🚲  🚆


how install and use script?

the source is a .rs file. I don't know this extension. How install / compile your script and how use it? thx

install rustup
clone this project
enter project directory
run command cargo build
done


Do you support CSV files?

Can we read CSV files please?

We do not provide specific support for CSV files at the moment, unfortunately. It's always possible to read a file as a string though, iterate over the lines and parse the fields in javascript.
I guess it could be somewhat possible to provide some built-in support, eg. transform a CSV file that looks like:
name,count
damien,2
michael,2

into something like
[{
    "name": "damien"
    "count": 2,
},{
    "name": "michael",
    "count": 2,
}]

but there's a lot of metadata to provide for this to work: column names, column types, field separator, ...
I'd lean towards writing that logic in js instead of providing built-in support /me thinks.

I think there are probably good NPM libraries for CSV parsing. We have data we need to build out app from, being able to use CSV would mean we could only use JK.

CSV (tab-SV, etc.) can be more complicated than it seems, with quoting and so on. It may be worth building this in (go has encoding/csv), perhaps as an RPC if not a std.Format.


WriteWithGradient() causes issues with further calls to WriteLine()

After calling
Console#WriteWithGradient(...)
some strange behaviour can occur when trying to set the colour back to white.
In my particular case, I write with a gradient, write with the colour Gray, then write with the colour White, and the text which should be white is rendered using a colour from the gradient (seems to also be a little inconsistent as to which colour is sampled).
I think the only way to explain this is with a simple screenshot, so:

OS Information: Windows 10 Pro 64-bit, version 1809, build 17763.437

Thanks for the question.  This is expected behavior (see usage notes -- what's happening here is that the console (pre-Windows 10 virtual terminal, which Colorful.Console doesn't yet support) can only write in a total of 16 different colors in a session.  Once 16 different colors are used, and you try to write with a 17th color, one of the 16 colors that were previously used will be used, instead of that 17th color.
For more details, see https://github.com/tomakita/Colorful.Console/blob/master/src/Colorful.Console/ColorManager.cs
For the status of the aforementioned virtual terminal support, see https://github.com/tomakita/Colorful.Console/issues/24


NSwag run command is not working in linux

I am generate Client with nswag command line tool in MSBuild. It ignores argument of input nswag-file.
So, command
dotnet "/root/.nuget/packages/nswag.msbuild/13.1.2/build/../tools/NetCore30/dotnet-nswag.dll" run "/home/myproject/extsrv.nswag"
prints in output
Current directory does not contain any .nswag files.
In source code
https://github.com/RicoSuter/NSwag/blob/master/src/NSwag.Commands/Commands/Document/ExecuteDocumentCommand.cs
I see following line
 if (!string.IsNullOrEmpty(Input) && !Input.StartsWith("/") && !Input.StartsWith("-"))
I suppose, this command cannot be used in linux.

I'm having the same issue. @EugeneAzhogin , what did you end up doing given this issue?

As a workaround you can start code generator in the projects folder and give relative path to the nswag document.
cd /home/myproject
dotnet "/root/.nuget/packages/nswag.msbuild/13.1.2/build/../tools/NetCore30/dotnet-nswag.dll" run "./extsrv.nswag"

This also works with msbuils Execs task:
<Exec
    Command="...."
    WorkingDirectory="/home/myproject"
    ConsoleToMsBuild="true"
    IgnoreExitCode="true" />

It will work from frontend node modules.
node_modules/.bin/nswag run nswag/service.config.nswag

Will this ever be fixed?

@amithkumarg well will you ever fix this?


Maybe add ShadowsocksR support?

ShadowsocksR provides far better protection than the original Shadowsocks. It's using better encryption, obfuscation, and can pretend to be browsing another website. And the R version is technically backward compatible.There's someone already made one using electron framework. https://github.com/erguotou520/electron-ssr

Picture lost in transmission, there is text.
from 三网公告板(t.me/NetBulletinBoard)
1月24日 GFW大规模封锁代理服务器的IP 你中招了吗？
我很幸运，没被封锁 – 345
👍👍👍👍👍👍👍 49%
我搭建的 SSR 代理服务器被封锁 – 274
👍👍👍👍👍👍 39%
我搭建的 SS 代理服务器被封锁 – 34
👍 5%
我搭建的 多种 代理服务器均出现封锁 – 23
▫ 3%
我搭建的 V2RAY 代理服务器被封锁 – 11
▫ 2%
我搭建的 Brook 代理服务器被封锁 – 6
▫ 1%
我搭建的 其他 代理服务器被封锁 – 5
▫ 1%
👥 698 people voted so far.
1月24日的 幸运者，你们使用的代理服务器是？
2，我用SSR，我很幸运，我没被封锁 – 370
👍👍👍👍👍👍👍 33%
8，很不幸，我被封锁IP了 – 332
👍👍👍👍👍👍 30%
1，我用SS，我很幸运，我没被封锁 – 261
👍👍👍👍👍 23%
3，我用V2RAY，我很幸运，我没被封锁 – 79
👍 7%
7，我用 其它 工具，我很幸运，我没被封锁 – 36
👍 3%
6，我用HTTP(S)/Socks5，我很幸运，我没被封锁 – 22
▫ 2%
5，我用PPTP/L2TP，我很幸运，我没被封锁 – 12
▫ 1%
4，我用Brook，我很幸运，我没被封锁 – 10
▫ 1%
👥 1122 people voted so far.
张飞龙<EMAIL_ADDRESS>于 2018年4月25日周三 07:20写道：

As you see, blocled SSR server : not bolcked SSR server = 370:274. And for
SS, it's 261:34. For V2Ray is 79:11. I don't think SSR really "provides far
better protection". SSR and SS use same crypto library and same encryption
method.
If you think SS isn't safe enough, try V2Ray, better obfuscation, more
transport protocol, brand new protocol design, advanced routing function,
MIT license, cross platform, compatible with SS.
PeterJi<EMAIL_ADDRESS>于 2018年4月24日周二 17:19写道：

ShadowsocksR provides far better protection than the original
Shadowsocks. It's using better encryption, obfuscation, and can pretend to
be browsing another website. And the R version is technically backward
compatible.There's someone already made one using electron framework.
https://github.com/erguotou520/electron-ssr
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Jigsaw-Code/outline-client/issues/72, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AQVHEtnL1Oaw9O7LSgK4kEdHO_eyoFqHks5tru41gaJpZM4ThTac
.

Excuse for my poor english.
I bought a service that only provide SSR protocol, And I'd like to use OUTLINE rather than SSRR client.
Consider support this feature when @peter17ji reach 50 thumbs?

@66beta Using SS protocol on a SSR-only server could lead to a GFW'd and unusable server, so consider other clients.

I live in China and spent quite a bit of time setting up and testing both Outline and SSR servers in Japan, Korea and Singapore. Some observations below:

Outline (SS protocol) does not achieve decent speeds in China and maxes out at 12mb/s for China Telecom users
SSR servers using Shadowrocket (iOS) and ShadowSocks client for MAC reach up to 29mb/s
Outline (SS) does not work at all with China Unicom (reaching a max DL of 5mb/s) while China Mobile works only a little faster, maxing at 8mb
SSR on iOS with China Unicom does not exceed 2mb/s, making me believe that China Unicom is already throttling SSR connections.

Note: all servers were speed optimized with BBR installed.
My opinion is that if Outline is really to succeed in China, then it would have to adopt SSR standards some time in the future. SS is already getting blocked and throttled here and I dont see it surviving for long anymore, hence would very much support SSR support in the future.

@patrickmau do you have more details about the time of day and which servers you we're trying for those speed tests? For me it's entirely based on when the tests are run.
In the morning @ 9:38am from Shanghai on China Unicom 4G using "Speedtest by Ookla" with an Outline server setup in Google Cloud asia-east2-a I'm getting results like:
Tai Po (Hong Kong) 26.7Mbps DOWN - 3.70Mbps UP - 28ms
Hutchinson, KS (USA) 24.9Mbps DOWN - 3.64Mbps UP - 12ms
Derry (Ireland) 9.09Mbps DOWN - 4.88Mbps UP - 332ms
London (UK) 5.6Mbps DOWN - 4.45Mbps UP - 323ms
Madliena (Malta) 8.01Mbps DOWN - 4.78Mbps UP - 359ms
Now I imagine if I ran the same results tonight between 6pm -> 1am when the Great Firewall kicks in, it'd outright not work or I'd get throttled to hell

SSR does not use better encryption. That's misleading and we should stop spreading this kind of disinformation. SSR only adds obfuscation.
It's very easy to detect SSR. It randomizes the packet sizes, so all you need to do it look at the entropy of the packet sizes. You don't even need to look at the content. Max Lv has implemented a proof of concept.
Because it's easy to detect, we don't intend to support it.


Removing Dependency Status

There is something wrong with dependancy status badge - https://screenshots.firefox.com/uz9fx7fkydqkGfop/github.com
And it redirects to https://afiliados.medicapanamericana.com/user/projects/574e40e6e298f30048059b9f - it looks wrong.

Coverage remained the same at 94.297% when pulling 5be46406a444e6dba796a5ed217fe2b95e6f901e on docs-patch into 824648551ed5122de314714cc6124abc22785591 on master.

Yup! I'd say that one looks like it's gone


Incorrect html rendering of math stuff with needextract

When using needextract, the math stuff is not properly rendered (cf both images)

Associated rst code
.. spec:: A spec with math stuff
   :id: MATH_STUFF

   A spec with nice math stuff :math:`x = y^2`

Note that if the needextract is on the same page, it is well rendered, but it is not the case as long as it is on  a different page

Thanks for the bug report.
We had similar problems in the past with other sphinx functions and needextract.
Reason for this was, that we need to trigger the related sphinx feature on our own for the page, as sphinx has not noticed that this is needed for this additional page.
Fix should be a one liner, after I figured out the internal function which deals with math expressions.


Join me on Google Pay!

Hi! Download the Google Pay app with my link and we will both get rewards when you pay a friend or tap to pay using Google Pay.
Terms apply. Valid for my first three referrals. https://g.co/payinvite/u27is53

Hi! Download the Google Pay app with my link and we will both get rewards when you pay a friend or tap to pay using Google Pay.
Terms apply. Valid for my first three referrals. https://g.co/payinvite/u27is53


[WIP] [DARGA] Fix bug with common datastore across datacenters

Purpose or Intent
Backport of https://github.com/ManageIQ/manageiq/pull/9670 using ReservedMixin for the new ems_ref column in the host_storages table
This fixes an issue when you have a Storage that has multiple ems_refs causing provisioning to fail by using the wrong ems_ref.  This can happen when you mount the same NFS share to hosts in different datacenters and/or different vCenters.
Links

Master PR #9670
https://bugzilla.redhat.com/show_bug.cgi?id=1337552

Steps for Testing/QA

Mount the same NFS share to hosts in two datacenters
Use the ManagedObjectBrowser (https://vc_ip_addr/mob) to confirm the different MORs
Run inventory refresh
Confirm 1 Storage record is created and two HostStorage records with different ems_refs

@agrare what is keeping this PR as WIP?

@chessbyte I want to make sure https://github.com/ManageIQ/manageiq/pull/9827 is ready first and we're still working out the good_migrations failures with ReservedMixin on that one

@agrare @Fryguy what is the status of this PR?

@chessbyte this PR depends on https://github.com/ManageIQ/manageiq/pull/9827

@miq-bot remove-label wip


Support Ionic 4

Hi,
is it possible to get support for Ionic 4.

You mean Ionic 3 / Angular 4?

Yes, thats right

Sorry I've been busy lately.  The weather has gotten nice in the northern hemisphere and I'm focusing on a side project using react native (excuses excuses I know).  I might have time to look into it this weekend.

any update for this?

it doesn't work with "@angular/core": "4.0.0"

it doesn't work with "@angular/core": "4.0.0"

Hi,
I am also using this library in ionic3 but having issue in scrolling to index. can you please fix and update this library?

resolved via https://github.com/rossmartin/ionic2-alpha-scroll/pull/17
New major version 2.0.0 is available with this PR.


Pathology Tumor Detection

Description
This PR adds a pathology pipeline example to train and evaluate a model to detect tumors on whole-slide histopathology images. This pipeline uses ignite-based MONAI workflow.
Status
Ready
Checks

@wyli, @Nic-Ma, it would be great if either of you can review and merge this PR. Thanks.

Hi @drbeh ,
Thanks for the quick PR!
I think the dataset_subset.json is too long in the code base, could you please help put it in our google drive storage? And use MONAI download API to download it in this example?
@wyli , what do you think?
Thanks.

yes, the current shared drive at https://drive.google.com/drive/u/2/folders/1ZOqwF44newvq-jOSgnbXRDWRD9DRq8hH

Sure, let me check that.

I moved the datasets to the google drive and updated the README with the download links. For testing this pipeline (without any performance gain), you should download two images (tumor_001 and tumor_101) as mentioned in the README from here
You also need the dataset_0_subset_0.json from here.

Looks good to me. My concern is that we'll probably break this tutorial when developing the core codebase. This happened before https://github.com/Project-MONAI/MONAI/issues/2571, and it was detected manually -- which is not efficient.
So I'm wondering whether we should also convert this into an integration test in MONAI (e.g. https://github.com/Project-MONAI/MONAI/blob/dev/tests/test_integration_determinism.py), to download some testing data (e.g. https://github.com/Project-MONAI/MONAI/blob/7f42efe0ab55730c302aba87bcd9bf75c4bfc496/tests/test_patch_wsi_dataset.py#L27-L28), run a few training steps.

@wyli, I agree with you that we should have an integration test in MONAI for pathology too. I can make a simplified version of this for integration but it requires to download two large images (3.1GB and 1.4GB). Wouldn't it be a problem?
Anyways, We should have some examples in tutorials, shouldn't we?

Adding tests will be great. gigabytes of testing data will cause issues, is it possible to have a smaller test?
Yes we should have examples in the tutorial, and ideally other developers should be able to help maintain it when you are not available.

README is updated!


ETag issue

Hi all,
Just started on my U9 journey and so far so good, this plugin has helped me get up and running with my Azure storage! However I have come across 1 issue in regards to the line below:
https://github.com/umbraco/Umbraco.StorageProviders/blob/032fa6db13c1224eb8f509990fa37b500e5f3bf0/src/Umbraco.StorageProviders.AzureBlob/AzureBlobMediaMiddleware.cs#L142
When viewing an image this line will cause an issue and the image will not load. From what I've read elsewhere, ETags need to be wrapped in quotes which led me to alter the code in my solution to this:
responseHeaders.ETag = new EntityTagHeaderValue($"\"{properties.Value.ETag}\"");
After I had made this change I could then view images correctly. I'm not an expert on ETags so I'm not sure if the change I've made has invalidated them or not 😅 hopefully someone else can chime in here!
If you need any more information on this just let me know and I'll be happy to help.
Thanks,
Rob

Hi @RSDevelopsUK
Somehow I thought that it was handled by EntityTagHeaderValue, but looking around I can see it's not.
Would you mind creating a PR with the fix? :smile:
Thanks

Sure thing!

The PR can be found here

Thanks again, the PR have been merged 😄


Added field in under Extension configuration did not trigger Typesense update

Description
Added field in under Extension configuration did not trigger document updates in Typesense
Steps to reproduce
Under Extension Configuration in Firebase extension, add a field to the existing list of fields under "Firestore Collection Fields (Optional)".
Expected Behavior
Expect the /typesense_sync/backfill/trigger:true collection takes care of the change.
Actual Behavior
There was no attempt by the extension function to update any document in Typesense. Tried to remove and recreate the backfill collection, still nothing. The change is only reflected when a document is actually updated in firebase.
Metadata
Typesense Version: <1.2.0
OS: MacOS 14.2.1 (23C71)

When you changed the extension configuration, could you confirm that Firebase re-deployed both the backfill function and the indexingOnWrite function?
Could you try re-installing the extension from scratch with the new field added, and see if that helps?
Also, do you see any logs in the backfill functions in the Firebase web console, showing any errors?

Apologies I said there was no attempt by the extension function to update. I couldn't find anything under indexToTypesenseOnFirestoreWrite function log, but now I found below under backfillToTypesenseFromFirestore function log. Let me know if you find something below, and still want me to try re-installing. I probably will try with a new, smaller setup as I don't want to disrupt the live app.
--- backfilling function triggered ---
{
  "textPayload": "Backfilling [a, b, c (last one newly added)] fields in Firestore documents from products into Typesense Collection products on xyz.typesense.net",
  "insertId": "insertID",
  "resource": {
    "type": "cloud_function",
    "labels": {
      "region": "us-central1",
      "project_id": "projectID",
      "function_name": "ext-firestore-typesense-search-backfillToTypesenseFromFirestore"
    }
  },
  "timestamp": "2024-01-10T04:09:17.988118Z",
  "severity": "INFO",
  "labels": {
    "execution_id": "executionID",
    "runtime_version": "nodejs16_20231231_16_20_2_RC00",
    "instance_id": "instanceID"
  },
  "logName": "projects/projectID/logs/cloudfunctions.googleapis.com%2Fcloud-functions",
  "trace": "projects/projectID/traces/traceID",
  "receiveTimestamp": "2024-01-10T04:09:18.307724632Z"
}

Following that is an error:
Import error ImportError: 0 documents imported successfully, 1000 documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document.
    at ImportError.TypesenseError [as constructor] (/workspace/node_modules/typesense/lib/Typesense/Errors/TypesenseError.js:23:28)
    at new ImportError (/workspace/node_modules/typesense/lib/Typesense/Errors/ImportError.js:25:28)
    at Documents.<anonymous> (/workspace/node_modules/typesense/lib/Typesense/Documents.js:154:39)
    at step (/workspace/node_modules/typesense/lib/Typesense/Documents.js:48:23)
    at Object.next (/workspace/node_modules/typesense/lib/Typesense/Documents.js:29:53)
    at fulfilled (/workspace/node_modules/typesense/lib/Typesense/Documents.js:20:58)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  importResults: [
    {
      code: 409,
      document: '{"document content"}',
      error: 'A document with id <DocID> already exists.',
      success: false
    },
....

Then these two messages:
Done backfilling to Typesense from Firestore
Function execution took 9275 ms, finished with status: 'ok'

And this error again:
Import error ImportError: 0 documents imported successfully, 7366 documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document.
    at ImportError.TypesenseError [as constructor] (/workspace/node_modules/typesense/lib/Typesense/Errors/TypesenseError.js:23:28)
    at new ImportError (/workspace/node_modules/typesense/lib/Typesense/Errors/ImportError.js:25:28)
    at Documents.<anonymous> (/workspace/node_modules/typesense/lib/Typesense/Documents.js:154:39)
    at step (/workspace/node_modules/typesense/lib/Typesense/Documents.js:48:23)
    at Object.next (/workspace/node_modules/typesense/lib/Typesense/Documents.js:29:53)
    at fulfilled (/workspace/node_modules/typesense/lib/Typesense/Documents.js:20:58)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  importResults: [
    {
      code: 409,
      document: '{"document content"}',
      error: 'A document with id <Doc ID> already exists.',
      success: false
    },
...

Ah this is because during a backfill, we do action=create, instead of action=upsert, so Typesense throws an error saying the document being backfilled already exists.
We didn't account for this use-case of backfilling a 2nd time when a new field is added to an existing collection. Will push out an update for this shortly.

Yay! Thanks for arranging update for this. That would be very useful. A kind note, please also take into account the user-case that a field is removed.

Could you try installing this pre-release version of the extension and let me know how it goes:
<EMAIL_ADDRESS>

I did, below steps and result.

setup a new collection in firestore (3 docs, 3 fields)
setup a new collection in typesense
installed 1.3.0-rc.0, in config, included only 2 of 3 fields in Firestore Collection Fields
upon completion, nothing show up in typesense, even though I had a typesense_sync backfill collection in place (before this whole setup)
deleted the typesense_sync backfill collection, created a new one
all docs appeared in typesense, with 2 fields
reconfigured the extension to include the third field
upon completion, typesense is not updated, all docs still have 2 fields only
repeated step 5
all docs in typesense updated, with 3 fields

upon completion, nothing show up in typesense, even though I had a typesense_sync backfill collection in place (before this whole setup)

This is expected, because only after the extension is installed, it starts listening for the creation of the typesense_sync backfill collection. It does not look at an existing typesense_sync collection.

upon completion, typesense is not updated, all docs still have 2 fields only

This is also expected, since the backfill only runs when explicitly triggered by creating the typesense backfill collection.
So it sounds like things are working as designed, since all docs in Typesense now have 3 fields in Step 10?

Yes. I also tried to remove one field in config, and all work out as expected. Thanks for your lightning-fast communication and implementation!

Happy to help! And thank you for all the feedback.
I'll publish this version live shortly.


CABS.SalesPrix version <IP_ADDRESS>

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/115675&drop=dogfoodAlpha

@wingetbot waivers Add Validation-Domain

Duplicate of #115273


pool_contract_address keeps resetting to None after plotter worker restart

For some reason every time I restart my machinaris plotter, the pool_contract_address entry in the plotting settings keeps resetting to None. I have to manually update it each time, or plotting won't start.
I'm on Machinaris 0.5.5, ubuntu 20.10 for both controller and plotter.

Sorry to hear that.   I see there is a regression in Machinaris handling of this value as the Chia team added some warning text and reformatted the output of their CLI commands.  Thanks for the report.  I will have to change my parsing to match this change upstream.
That said, the automatic replacement of pool_contract_address is only in the web-view, for you to review.  There is no automated change made on disk to the yaml config unless the Save button is clicked.  Only the displayed settings in WebUI is auto-updated.  You can see this by checking file ~/.machinaris/plotman/plotman.yaml directly on disk.

No worries, I just wanted to point that out :)

Hi, so I've been testing this more on my end with latest version (same behavior as in older v0.5.5).  I'm not able to replicate the clearing behavior you describe so am a bit confused.   Would you mind doing a quick code review? A second set of eyes is often very helpful.
Basically, Machinaris lists your plotnfts by executing chia plotnft show.  If you have a single plotnft, then Machinaris will attempt to extract the pool_contract_address from the output.  Return from that method is either the pool_contract_address value or None (for example if you had many plotnfts, so automated replace can't be done).
This pool_contract_address value is returned to this method.  If None, no replacement is added. However if a value is set, a replacement against the default placeholder text "REPLACE_WITH_THE_REAL_VALUE" is performed when displaying the settings file.  It's not saved to disk, but rather shown to user for their review and Save button click.
I do note that REPLACE_WITH_THE_REAL_VALUE from the sample config is the only text that is replaced for display.

If the settings file had a previously changed pool_contract_address (set by user directly) for example, then no replacement is suggested in the WebUI.
I definitely think there is an issue in my logic here with respect to your install, but I'm just having trouble seeing it from my testing.  Please share your thoughts.  Thanks!

Ok so to add some details to my setup:

the issue is coming from a plotter only worker, so no plotnfts are found when machinaris starts up (Connection error. Check if the wallet is running at 9256. You can run the wallet via: [...])
I'm using docker-compose for both my plotter and my farmer, so I have a volume mapping (as you described) that's

[...]
volumes:
            - ~/.machinaris:/root/.chia
            - [...]

My local .machinaris/plotman/plotman.yaml file correctly lists the value for pool_contract_address. When starting up the docekr image, the value is replaced with None
I can see in this code snippet something interesting: if I don't have nft plots this function will return None, so my guess is that somewhere in the code you will replace the existing value with None.

def load_pool_contract_address():
    plotnfts = c.load_plotnfts()
    if len(plotnfts.rows) == 1:
        m = re.search('Pool contract address .*: (\w+)'.format(type), plotnfts.rows[0]['details'])
        if m:
            return m.group(1)
    elif len(plotnfts.rows) > 1:
        app.logger.info("Did not find a unique Pool contract address as multiple plotnfts exist.  Not replacing in plotman.yaml.")
    return None

After skimming the code everything seems to be in place. There could be one of those sneaky bugs in the checks for nft plots tho, something like if " ": which would evaluate to True, but I don't think it's likely.
I didn't have the opportunity to dig in too deep, as I don't know if there's an easy way to view logs in the docker-compose command, and without logs I don't have much info at my disposal

On a side note, In order to do some testing on my plotter I had to kill ongoing plots, and I noticed that the temporary files are not deleted!

I just noticed, even if my full_node is not a plotter it has a settings/plotting configuration. In that configuration, the pool_contract_address doesn't become unset after a machinaris restart


FanzyZones: drag with alternative mouse button to combine zones on-the-fly and snap

📝 Provide a description of the new feature
Snapping windows to FanzyZones should be as fast and flexible as possible, and not require the keyboard.
Two features are already a fantastic solution:

Drag + alternative mouse button to activate snapping
Drag over zone edges to snap to combined zone (with customisable "edge width")

To improve this one more step, rather than requiring the user to mouse to the edge (which is fiddly and therefore not fast), allow the user to drag with the alternative mouse button. Any zones dragged over are combined on the fly. On release, the window is snapped to the combined zone.
Because the zones themselves are massive targets, the speed of the operation would be greatly increased.

If you'd like to see this feature implemented, add a 👍 reaction to this post.

Already tracked by https://github.com/microsoft/PowerToys/issues/10191


serpl: 0.1.30 -> 0.1.34

Description of changes
Changelog/release notes are sparse; TLDR some performance (debounced input, search confirmation in large dirs) and UI improvements (context around matching lines).
Things done

Built on platform(s)

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

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

[x] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

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

1 package built:

serpl