Update SiteManager to cache sites identified by hostname/port [WIP]

With all of the recent talk about potential changes to Site, and addressing some of the longstanding bugbears with the current Site implementation (see #3834, #2840), I decided to work on a cached SiteMiddleware solution that would yield the same results in all of the current test scenarios, while also attempting to improve the efficiency of how sites are identified for individual requests.
Changes include:

Moving 'finding an appropriate Site for handling a request' logic to a 'get_for_request()' method on the SiteManager (Managers are good for this sort of thing)
Adding a 'get_default()' method to SiteManager to help easily identify the default site
Turning the 'find_for_request()' static method on the Site model to a class method that calls the SiteManager's 'get_for_request()' method
Adding caching to 'get_default()' and 'get_for_request()' for faster results after the first call
Using signal handlers to clear the cache when relevant actions occur
Using smaller, simpler queries when attempting to find a Site for a request, instead of a single complicated query that automatically results in a slower initial response in all scenarios (in real life, the new solution will result in at most 2 small queries per request, or 3 if the default site hasn't yet been cached)
Adjusted self.assertNumQueries() tests to account for the change in query numbers, and extended existing tests to show the cache (and cache clearing) in action

Notes:
Unlike wagtail.wagtailcore.sites.get_site_for_hostname(), none of these new methods use 'select_related' to prefetch the root_page and include it with the result. This was a deliberate decision, made for the following reasons:

We don't know that the root page is needed every time
It makes things far less efficient
With efficiency of fetching sites improved massively in most circumstances, fetching the page data afresh when needed each time shouldn't be a problem

Any thoughts or comments would be gratefully received :)

All of the current test failures are coming from the wagtail.api app. Have tried for hours to figure out why these failures are happening, but have so far come up short. If anyone with insight into the wagtail.api app could help shed some light on this, that would be great.

Okay, turns out the test failures were due to a wee cache invalidation issue, which is solved by the new post_save and post_delete signal handlers for Page. That saying about cache invalidation and naming things rings true :)

Thank you for the review @BertrandBordage. Much appreciated!
In relation to your suggestion here:

Thank you for the review @BertrandBordage! much appreciated. In relation to your idea proposed above:

Also, I have something to propose, that will probably simplify things a lot. Instead of fetching uncached sites one by one by doing between 1 and 3 SQL queries, we could write something really easy and more efficient in this case. Every time we can’t find a site in the cache, we fetch all uncached sites and cache them.

From what I understand, hostname-only or default site matches can be returned for an undeterminable number of 'ports', so I'm not sure we can populate everything up-front. Unless there's some configuration for that somewhere that I've missed? If not, and we can only partially populate the cache, is that still useful enough to justify the additional code complication?

As mentioned in my previous comment, the attack on ports is almost impossible on a normal server, and it is very limited in case it happens anyway.
Additionally, for a request on an unknown port, we simply return the default site, so we don’t even have to do the 2 queries done with your solution.
Something I’m wondering now about all this caching system: what happens when running multiple workers? If I modify a site on a given process, the cache is correctly cleared in that process, but it’s not clearing the cache from other processes…

what happens when running multiple workers? If I modify a site on a given process, the cache is correctly cleared in that process, but it’s not clearing the cache from other processes…

I can't claim to be knowledgeable about this particular subject, but wouldn't those workers also be responding to the same signals triggered by such changes, and also be clearing their version of the cache in memory?
Have we come to a bit of an en-pass here? Is a change in tact needed? Would a switch to using the low-level caching API address these concerns?

Unfortunately, signals are simply a list storing Python functions then calling them later, so it’s within the same process. The only way to communicate to the other process is either through the database or through a cache backend. And it can’t work with the default cache backend, LocMem, since it’s simply a Python dictionary.
What’s weird is that Django is using exactly the same approach as you took, don’t spend more time on this, I’ll make some research and ask the Django team about it. Either I’m missing something, or Django really has an issue with this. Since I remember having to restart servers after changing Site objects in both Django & Wagtail, I guess there’s indeed a problem.
Anyway, the caching could be as simple as using a configured cache instead of a dictionary, but only if the cache is not LocMem.
Or we can ditch the idea of caching site objects, django-cachalot does exactly that kind of caching automatically ;)
(Just kidding, I know it doesn’t fit all use cases.)

Just created ticket #28844 in Django about the multi-process issue, with a minimal example.

Looks like you were right @BertrandBordage. Apparently it's been a known issue for years, but there's been no consensus on a solution yet :(
Seems like one way forward might be a switch to using the cache backend under certain circumstances. But then, we'd have to rethink entirely the way cache invalidation works, introducing a tonne more code that will require tests and maintenance...
And by the time we're done, we may have well have used django-cachalot, which feels like the 'already-evolved' version of what we're trying to achieve (with the advantage of it being generic, and already well tested). But then again, that would mean forcing additional dependencies and configuration onto the developers, which I would expect that nobody in the core team (including yourself) is going to want to do for the sake of speeding up this one small part of wagtail.
For now, I think the sensible decision is to abandon this PR - unless you feel differently?

Hi @BertrandBordage, I got over my initial feelings of deflation and have decided to plough on with this in the direction you proposed. It has meant a LOT of changes though.
In particular, I think we might want to revise how the new settings are used, or the warning is surfaced (maybe warning isn't enough, and you'd rather raise an IncorrectlyConfigured). But anyway.
I have some lingering concerns about ensuring all existing data is cleared from the cache when clear_site_cache() is called. These will no doubt benefit from some unit tests to ensure that's working well enough.

@BertrandBordage The original intention has changed so much since starting this, that it's probably best to close this pull and create a fresh one based off the master branch. I'll resubmit again soon with a more appropriate writeup.

Thank you @ababic, I’ll then make a new review. From what I quickly saw of your recent changes, this seems way more robust.


feat: IP_RECVHOPLIMIT & IP_RECVTTL for FreeBSD

Add 2 constants for FreeBSD:

IP_RECVTTL
IP_RECVHOPLIMIT

Emm, no idea why the FreeBSD CIs are failing:(

I guess you meant IPV6_RECVHOPLIMIT?

I guess you meant IPV6_RECVHOPLIMIT?

Thanks for catching it! How can I make such a mistake, I guess my head is pretty dizzy at that time:D


You need to use slot=list

You need to use slot=list
Originally posted by @nolimits4web in https://github.com/framework7io/framework7/issues/4201#issuecomment-1624160416
Sorry, but I don't understand, where is this documented?
Even if I usedslot="list"in the f7-item-group element I get two cascaded
:

A....

from vue-template code
<f7-block-title>Dynamic list-group</f7-block-title>
    <f7-list media-list dividers-ios strong-ios outline-ios>
      <f7-list-group v-for="g in groups" slot="list">
        <f7-list-item title="A" group-title />
...

Same demo as before:
https://codesandbox.io/p/sandbox/inspiring-pond-93tw8k?file=%2Fsrc%2Fpages%2Fhome.vue

https://codesandbox.io/p/sandbox/inspiring-pond-93tw8k?file=%2Fsrc%2Fpages%2Fhome.vue

If I understand right, in components/list.js this part is relevant:
if (tag && typeof tag === "symbol") {
...
}

In the first example this case happens (symbol), in the second example, the third case.

<f7-list media-list dividers-ios strong-ios outline-ios>
  <template #after-list>
    <f7-list-group v-for="g in groups">
      ...
    </f7-list-group>
  </template>
</f7-list>

Thanks, that works, although it's quite unintuitive.


Trying to get proper scale on Dell U4025QW (native 5120x2160)

I have a 5120x2160 monitor on a 4070 Ti and I'm struggling to get this game to run properly scaled. I've installed this fix but none of the resolution options are the right aspect ratio.
For example, the only 1440p options are 2560x1440 and 1920x1440. There's no 3480x1440. As a result, everything winds up being stretched.
The only proper aspect ratio option is native (5120x2160) but then of course I run into the bug where the game runs at about 3fps.
Is there some way to get a ~1440p resolution option with the proper aspect ratio?

If you're on an Nvidia card, your best bet is probably to add a custom resolution in the Nvidia control panel. If your display is 5120x2160, then you'd want a custom resolution of 3840x1620 for the exact same aspect ratio.

Thanks for the suggestion...unfortunately I wasn't able to use the Nvidia control panel to do it, but someone helped me by suggesting a registry edit here: https://www.reddit.com/r/ultrawidemasterrace/comments/1fjf4xq/cant_add_custom_resolutions_via_nvidia_control/


Concurrent transactions on embedded replica connections fail

Facing an issue where multiple concurrent transactions started on separate embedded replica connections fail, with only one of them succeeding. Others fail with error Err(RemoteSqliteFailure(3, 1, "cannot start a transaction within a transaction"))
Tested on remote connections and the scenario works fine there.
Below is a reproducer for this:
use libsql::{Builder, Connection, Result};

#[tokio::main]
async fn main() {
    let db_url = "http://localhost:8080";
    let replica = Builder::new_remote_replica(
        "/tmp/embedded_transaction.db",
        db_url.to_string(),
        String::new(),
    )
    .build()
    .await
    .unwrap();
    let remote = Builder::new_remote(db_url.to_string(), String::new())
        .build()
        .await
        .unwrap();
    let replica_conn_1 = replica.connect().unwrap();
    let replica_conn_2 = replica.connect().unwrap();

    let remote_conn_1 = remote.connect().unwrap();
    let remote_conn_2 = remote.connect().unwrap();

    let remote_task_1 = tokio::task::spawn(async move { db_work(remote_conn_1).await });
    let remote_task_2 = tokio::task::spawn(async move { db_work(remote_conn_2).await });

    let (task_1_res, task_2_res) = tokio::join!(remote_task_1, remote_task_2);
    let remote_task_1_res = task_1_res.unwrap();
    let remote_task_2_res = task_2_res.unwrap();

    // Everything works as expected in case of remote connections.
    assert!(remote_task_1_res.is_ok());
    assert!(remote_task_2_res.is_ok());

    let replica_task_1 = tokio::task::spawn(async move { db_work(replica_conn_1).await });
    let replica_task_2 = tokio::task::spawn(async move { db_work(replica_conn_2).await });

    let (task_1_res, task_2_res) = tokio::join!(replica_task_1, replica_task_2);
    let replica_task_1_res = task_1_res.unwrap();
    let replica_task_2_res = task_2_res.unwrap();

    if replica_task_1_res.is_err() {
        eprintln!("Task 1 failed: {:?}", replica_task_1_res);
    }
    if replica_task_2_res.is_err() {
        eprintln!("Task 2 failed: {:?}", replica_task_2_res);
    }

    // One of these concurrent tasks fail currently. Both tasks should succeed.
    assert!(replica_task_1_res.is_ok());
    assert!(replica_task_2_res.is_ok());
}

async fn db_work(conn: Connection) -> Result<()> {
    let tx = conn.transaction().await?;
    // Some business logic here...
    tokio::time::sleep(std::time::Duration::from_secs(2)).await;
    tx.execute("SELECT 1", ()).await?;
    tx.commit().await?;
    Ok(())
}

Since this is a critical issue faced by us at the moment, I would be more than willing to work on this issue, if someone could point me to places I should look into for this bug.

I noticed when connecting to a replication, the writer is cloned (I have 0 experience with Rust, so feel free to correct me if I'm wrong): https://github.com/tursodatabase/libsql/blob/main/libsql/src/database.rs#L552 but this set of my spidey senses

I noticed when connecting to a replication, the writer is cloned (I have 0 experience with Rust, so feel free to correct me if I'm wrong): https://github.com/tursodatabase/libsql/blob/main/libsql/src/database.rs#L552 but this set of my spidey senses

I too was thinking along the same lines, but I do think the issue might be in conn.writer() function. This gets/constructs the writer from the remote client present in the replication context which is set during Builder::new_remote_replica(...).build(), which I think is the issue here. Instead IMO, the replication context should only include relevant details to construct this client on demand (when db.connect() is called).

Thanks for the reproducer I have it also failing locally in a test now and will be taking a look.


GIFTI format support for reading data arrays with intent NIFTI_INTENT_NONE

BUG: read data arrays with intent NIFTI_INTENT_NONE for point or cell data
fixes #2103
PR Checklist

[x] No API changes were made (or the changes have been approved)
[x] No major design changes were made (or the changes have been approved)
[ ] Added test (or behavior not changed)
[ ] Updated API documentation (or API not changed)
[ ] Added license to new files (if any)
[ ] Added Python wrapping to new files (if any) as described in ITK Software Guide Section 9.5
[ ] Added ITK examples for all new major features (if any)

Refer to the ITK Software Guide for
further development details if necessary.

What about ITK.Windows failed? Am I expected to fix something?

There is one test failure, which seems unrelated to this PR. You can ignore it.

@crossmanith thank you for the contribution! :pray:
Could the branch please be rebased to pass the commit message formatting requirements?
See:
https://github.com/InsightSoftwareConsortium/ITK/blob/master/CONTRIBUTING.md#revise-a-topic
https://github.com/InsightSoftwareConsortium/ITK/blob/master/CONTRIBUTING.md#commit-messages

Before I was able to create the PR I had to add some commits to be in sync with the coding style - I did this on github directly. Don't know, what went wrong after that, but I started with a fresh clone, applied my changes again and grouped them in 6 instead of 8 commits with well formed commit messages. Now I can't push to branch ITK_2103. Would it be a good or a bad idea to delete branch ITK_2103, recreate it and push to this new branch?

You should force-push to the existing branch (command line option --force-with-lease, or --force).

/azp run ITK.macOS

/azp run ITK.macOS

Folks, I've seen that the coverage has increased from 89.7% on 89.85% to comparing the reports on Wednesday, January 06 2021 and Thursday, January 07 202. There are 248 less lines untested, but only 12 more tested (site: CDash Server, build Aggregate Coverage; numbers are similar for blaster.kitware, build Code Coverage; and the increase in perecentage is also similar for AWS-BATCH, build CentOS Coverage)
The commit hash corresponding to the AWS-BATCH site points to 414ad0 , contained in this PR. (The warnings in the build are unrelated to this PR).
The Modules/IO/MeshGifti/src directory has passed from 31.31%, 601/875 to 45.37% | 348/637 (coverage | lines not covered) between those two days. Have not thoroughly checked all directories.
Coverage increases are great news (and such great leaps forward are :100:; not easy to achieve), but at times large changes are indicative of issues, such as files not being compiled, files that have been moved out of the ITK proper source tree, etc. I have often merged (coverage improvement) PRs because tests were passing in GitHub, but have found later in the CDashdashboard that some non-default modules were not compiling, seeing such high variations in the coverage as a consequence.
Looks like it is not the case in here: I see in the PR that the refactoring has allowed to better re-use the code, which may help to explain the less lines existing in the module.
However, I just want to make sure that the increase in coverage is expected or a nice benefit of this PR. Thanks for the tremendous effort in this PR.

Folks, I've seen that the coverage has increased from 89.7% on 89.85% to comparing the reports on Wednesday, January 06 2021 and Thursday, January 07 202. There are 248 less lines untested, but only 12 more tested (site: CDash Server, build Aggregate Coverage; numbers are similar for blaster.kitware, build Code Coverage; and the increase in perecentage is also similar for AWS-BATCH, build CentOS Coverage)
The commit hash corresponding to the AWS-BATCH site points to 414ad0 , contained in this PR. (The warnings in the build are unrelated to this PR).
The Modules/IO/MeshGifti/src directory has passed from 31.31%, 601/875 to 45.37% | 348/637 (coverage | lines not covered) between those two days. Have not thoroughly checked all directories.
Coverage increases are great news (and such great leaps forward are :100:; not easy to achieve), but at times large changes are indicative of issues, such as files not being compiled, files that have been moved out of the ITK proper source tree, etc. I have often merged (coverage improvement) PRs because tests were passing in GitHub, but have found later in the CDashdashboard that some non-default modules were not compiling, seeing such high variations in the coverage as a consequence.
Looks like it is not the case in here: I see in the PR that the refactoring has allowed to better re-use the code, which may help to explain the less lines existing in the module.
However, I just want to make sure that the increase in coverage is expected or a nice benefit of this PR. Thanks for the tremendous effort in this PR.

Refactoring which significantly reduces lines of code is rare. I have only seen it in IO modules, which were created by a variety of people.
Simplification refactoring's main benefit is reducing possibility of copy-paste errors. Increased coverage is just one indication of the improvement.

Refactoring which significantly reduces lines of code is rare. I have only seen it in IO modules, which were created by a variety of people.
Simplification refactoring's main benefit is reducing possibility of copy-paste errors. Increased coverage is just one indication of the improvement.

Sounds good to me :+1:. These efforts certainly deserve a :medal_sports: !

Sounds good to me :+1:. These efforts certainly deserve a :medal_sports: !


String to char and vice versa

Code samples to show the conversion from String to char array and vice versa.

Including Junit testcase as mentioned in the review.

Review changes included.


Use logger instead of printing stack trace for caught exceptions

Hey @LucaScorpion, can we prioritize this? It is becoming really hard to trace other exception because the API is also printing trace.
Thank you

@tahnik Sure, I'll try to get some other stuff in there as well and deploy a new version by tonight.

Fixed in v1.3


Include ox-odt styles when building org

ox-odt looks for template-files in the etc/styles subdirectory. Including this and the styles files ensures correct behaviour. Previously, ox-odt found the styles-directory included with the org-version packaged with emacs (see the definition of org-odt-styles-dir-list).

Done!


add handler to return version string for url /service-catalog-version

to assist with addressing https://github.com/kubernetes-incubator/service-catalog/issues/2385
This PR is a

[ x] Feature Implementation
[ ] Bug Fix
[ ] Documentation

What this PR does / why we need it:
Register the url /service-catalog-version  with a handler that will return the Service Catalog version (ex v0.1.35-14+e21502afa7d08e)
#2385 still needs a PR to make the svcat invoke a GET to the new url
Please leave this checklist in the PR comment so that maintainers can ensure a good PR.
Merge Checklist:

[ ] New feature

[ ] Tests
[ ] Documentation

[ ] SVCat CLI flag
[ ] Server Flag for config

[ ] Chart changes
[ ] removing a flag by marking deprecated and hiding to avoid
breaking the chart release and existing clients who provide a
flag that will get an error when they try to update

cc: @carolynvs

/lgtm

ok, so the endpoint /version was coded & customized for service catalog  via #1429 - - if you port forward and hit the api server directly on /version you see good stuff.  I certainly shouldn't duplicate this.  For some reason /version isn't proxied by the aggregated api layer.   I'm investigating what we need to do that.  But clearly we don't need new code.
to see it:
$ kubectl port-forward catalog-catalog-apiserver...   -n catalog 8443:8443 &
$ curl -k https://localhost:8443/version
Handling connection for 8443
{
"major": "0",
"minor": "1+",
"gitVersion": "v0.1.35-14+e21502afa7d08e-dirty",
"gitCommit": "e21502afa7d08ebd8dcbe697729b0987ab3de3bd",
"gitTreeState": "dirty",
"buildDate": "2018-10-16T17:56:36Z",
"goVersion": "go1.10.1",
"compiler": "gc",
"platform": "linux/amd64"
}

oh weird!

The API aggregator doesn't transform the URL path when sending the request to the underlying API server (it doesn't map the path /apis/servicecatalog.k8s.io/v1beta1/version to /version).
So, to expose the service catalog version, we need to serve it at /apis/servicecatalog.k8s.io/v1beta1/version (note that the path must include v1beta1; it can't just be apis/servicecatalog.k8s.io/version, since the APIService resource maps a specific API group and version (not just an API group) to a k8s Service.


Kite autosearch docs not working on mouse events

Problem Description
With Kite enabled, docs are not automatically displayed in the Kite Copilot on mouse events. However, docs are automatically displayed on keyboard (e.g. arrow key) events.
What steps reproduce the problem?

Open the following file:

import pandas as pd
df = pd.read_csv('csv')

Open the Kite Copilot and enable "Docs Follow Cursor".
In the file above, try clicking on different identifiers e.g. panads or read_csv.

What is the expected output? What do you see instead?
Expected: Docs should show up automatically in the Copilot.
Actual: Nothing happens. However, if you use the arrow keys to move the cursor, docs are updated.

Versions

Spyder version: Spyder 4.0.0.dev0 (Commit: e362c9525)
Python version: Python 3.7.3 64-bit
Qt version: Qt 5.9.6
PyQt version: PyQt5 5.9.2
Operating System name/version: Darwin 18.7.0

Dependencies

cloudpickle >=0.5.0          :  1.2.2 (OK)
pygments >=2.0               :  2.4.2 (OK)
qtconsole >=4.5.5            :  4.5.5 (OK)
nbconvert >=4.0              :  5.5.0 (OK)
sphinx >=0.6.6               :  2.1.2 (OK)
pylint >=0.25                :  2.3.1 (OK)
psutil >=0.3                 :  5.6.3 (OK)
qtawesome >=0.5.7            :  0.5.7 (OK)
qtpy >=1.5.0                 :  1.9.0 (OK)
pickleshare >=0.4            :  0.7.5 (OK)
zmq >=17                     :  18.1.0 (OK)
chardet >=2.0.0              :  3.0.4 (OK)
numpydoc >=0.6.0             :  0.9.1 (OK)
spyder_kernels >=1.5.0;<2.0.0:  1.5.0 (OK)
qdarkstyle >=2.7             :  2.7 (OK)
atomicwrites >=1.2.0         :  1.3.0 (OK)
diff_match_patch >=20181111  :  20181111 (OK)
watchdog                     :  None (OK)
keyring                      :  None (OK)
pexpect >=4.4.0              :  4.7.0 (OK)
pympler                      :  None (OK)
sympy >=0.7.3                :  None (NOK)
cython >=0.21                :  None (NOK)
IPython >=4.0                :  7.8.0 (OK)
matplotlib >=2.0.0           :  None (NOK)
pandas >=0.13.1              :  None (NOK)
numpy >=1.7                  :  None (NOK)
scipy >=0.17.0               :  None (NOK)
pyls >=0.28.2;<0.29.0        :  0.28.3 (OK)
rtree >=0.8.3                :  0.8.3 (OK)

We're not relaying mouse events, aka textDocument/hover requests to Kite

@andfoy, please take a look at this one.

@metalogical, do we know which is the call Spyder should be making to Kite on such situation?

Is the kite co-pilot suppose to show documentation while hovering? I see it is showing in Spyder when I hover but it is only appearing in the co-pilot if I click.

Hi @jjslee. Copilot follows the cursor so that means in this case only clicks, not hovers.
Cheers


Disable compile on build

Hello,
I am using TypeScript 1.8.6 and vs2015
{ 	"filesGlob": [ 		"App/**/*.ts", 		"typings/tsd.d.ts", 		"!node_modules/**" 	], 	"compileOnSave": false, 	"compilerOptions": { 		"noImplicitAny": false, 		"noEmitOnError": true, 		"removeComments": false, 		"sourceMap": true, 		"target": "es5", 		"module": "commonjs" 	}, 	"exclude": [ 		"node_modules" 	] }
but when building project .js and .maps are generated. Is there any way to disable this action except to hack .csproj file manually?

set <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked> in your project. see http://www.typescriptlang.org/docs/handbook/compiler-options-in-msbuild.html#TypeScriptCompileBlocked for more details.


fix(chat): fix not escaping for inline codeblocks and url parsing issues

What this PR does 📖

Fix escaping issue with inline codeblocks
Fix url parsing
URL and Image markdown are now ignored as we do links separate from markdown

Which issue(s) this PR fixes 🔨

Resolve #1731
Resolve #1744
Resolve #1745

sending this
# Extended Markdown Test

## Table of Contents

- [Headers](#headers)
- [Emphasis](#emphasis)
- [Lists](#lists)
- [Links](#links)
- [Images](#images)
- [Blockquotes](#blockquotes)
- [Code](#code)
- [Horizontal Rule](#horizontal-rule)
- [Tables](#tables)
- [Task Lists](#task-lists)
- [Definition Lists](#definition-lists)
- [Code Blocks](#code-blocks)
- [Strikethrough](#strikethrough)
- [Fenced Code Blocks with Language Specification](#fenced-code-blocks-with-language-specification)
- [Footnotes](#footnotes)
- [Superscript and Subscript](#superscript-and-subscript)
- [Emoji](#emoji)
- [LaTeX Math](#latex-math)

this branch

vs dev

when sending this
![Image](data:text/html;base64,PHNjcmlwdD5hbGVydCgiSGVsbG8sIFdvcmxkISIpPC9zY3JpcHQ+Cg==)

it appears clickable on the preview but then when sending it isnt

this is on dev
so im not saying it should be on dev in this case, but if is not gonna be clickable when sending should not be clickable in the preview

this branch

vs dev

content
[Click me](javascript:window.location='http://malicious-site.com')

should not be displaying this

sending this
# Extended Markdown Test

## Table of Contents

- [Headers](#headers)
- [Emphasis](#emphasis)
- [Lists](#lists)
- [Links](#links)
- [Images](#images)
- [Blockquotes](#blockquotes)
- [Code](#code)
- [Horizontal Rule](#horizontal-rule)
- [Tables](#tables)
- [Task Lists](#task-lists)
- [Definition Lists](#definition-lists)
- [Code Blocks](#code-blocks)
- [Strikethrough](#strikethrough)
- [Fenced Code Blocks with Language Specification](#fenced-code-blocks-with-language-specification)
- [Footnotes](#footnotes)
- [Superscript and Subscript](#superscript-and-subscript)
- [Emoji](#emoji)
- [LaTeX Math](#latex-math)

this branch

vs dev

idk if we want it though? isnt that basically a hidden link?

i get your point, fine with it
i mean that is useful for things like github and what not but on uplink the link is not gonna work

sending www.google.pt
this branch

vs dev

This one specifically is affecting the CI automation tests:
User A sends a message with www.apple.com
User B receives a message with www.apple.com text and not an attached link

thanks for checking @luisecm 🔨

when sending this
![Image](data:text/html;base64,PHNjcmlwdD5hbGVydCgiSGVsbG8sIFdvcmxkISIpPC9zY3JpcHQ+Cg==)

it appears clickable on the preview but then when sending it isnt

this is on dev
so im not saying it should be on dev in this case, but if is not gonna be clickable when sending should not be clickable in the preview

when sending this
![Image](data:text/html;base64,PHNjcmlwdD5hbGVydCgiSGVsbG8sIFdvcmxkISIpPC9zY3JpcHQ+Cg==)

it appears clickable on the preview but then when sending it isnt

this is on dev
so im not saying it should be on dev in this case, but if is not gonna be clickable when sending should not be clickable in the preview

would create a new issue for that. as that problem is caused by the markdown preview js library

sounds good, thanks! :hammer:


Jupyter/Python extensions break Live Share in VS Code stable

Recently Live Share received this issue from customers about the Python and Jupyter extensions breaking Live Share coediting: https://github.com/MicrosoftDocs/live-share/issues/4199
Users experience the "connection dropping" when Python is enabled and they are trying to coedit a .py file. User are in a Live Share session and can't send/receive coediting messages. Live Share works normally when Python was disabled.
Through my own testing, I discovered that this bug only repros on stable, but works as expected on Insiders.
Environment - Stable
Stable
VS Code Version: 1.55.2
Python Version: 2021.4.765268190
Jupyter Version: 2021.5.745244803
Behavior: Connection drops in a Live Share session as described above.
Environment - Insiders
Insiders
VS Code Version: 1.56.0
Python Version: 2021.4.765268190
Jupyter Version: 2021.6.811652604
Behavior: Live Share works as expected.
The newest version of Jupyter to download on stable is 2021.5.745244803 and the newest version to download on Insiders is 2021.6.811652604. It seems that the newer version will unblock our users. When will you be releasing the newer version of Jupyter to stable?
What could have changed between the extension versions that could cause this? Our users were complaining about the behavior in .py files, but I was able to repro the bug for .ipynb files on both stable and insiders, so it seems there is still an issue here.

Thanks for letting us know.
We have no interaction with liveshare when running .py files (or .ipynb files) so not sure what could have happened that makes it work in insiders.
Perhaps this is an intellisense issue? Do you have logs for it working/not working?

It seems it becomes unresponsive:

Can you upload the CPU profile?

exthost-b7e0cf.txt

When will the new version be released to stable?

Today I believe. The CPU profile is pointing to the python extension, not Jupyter so moving this issue there.

Python extension is not releasing today though. So unless the problem is in VS code itself, our release likely won't affect this.


Make PcapWriteHandler support files bigger than 2 GB

Expected behavior
PcapWriteHandler should support large files, say 10 GB or 1 TB.
Actual behavior
Currently, PcapWriteHandler can only support files up to 2 GB because it uses 32-bit Integer.
Steps to reproduce
N/A
Minimal yet complete reproducer code (or URL to code)
Just capture data big enough to exceed 2 GB.
Netty version
4.1.66.Final
JVM version (e.g. java -version)
openjdk version "1.8.0_302"
OpenJDK Runtime Environment Corretto-8.302.08.1 (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM Corretto-8.302.08.1 (build 25.302-b08, mixed mode)
OS version (e.g. uname -a)
Windows 10 Pro x64

@hyperxpro are the fields in question sendSegmentNumber and receiveSegmentNumber[1]?
I see that we do not guard against integer overflow while accumulating bytes in these fields[2], perhaps we can do that before supporting larger payloads?
[1] https://github.com/netty/netty/blob/4.1/handler/src/main/java/io/netty/handler/pcap/PcapWriteHandler.java#L97-L103
[2] https://github.com/netty/netty/blob/4.1/handler/src/main/java/io/netty/handler/pcap/PcapWriteHandler.java#L284

Yes, we need to guard them against overflow. Norman did share swift-nio pcap where they fixed larger payloads and overflow. Lemme try to find it.

Here: https://github.com/apple/swift-nio-extras/pull/85


[Bug]: PatternSyntaxException - Exception - Not: #2703

/mv version -p output
https://paste.gg/p/anonymous/2db1d34183a844389f51b699d848ee9c
Server logs
https://paste.gg/p/anonymous/32b667ccdff54d5e91286bd20b048e4a
Server Version
This server is running Paper version git-Paper-786 (MC: 1.16.5) (Implementing API version 1.16.5-R0.1-SNAPSHOT)
You are 2 version(s) behind
Previous version: git-Paper-783 (MC: 1.16.5)

Server Version
My server is not crashing like in #2703 but my Console and Logs are spammed with the Warning - "PatternSyntaxException" (see: "Server logs") and some Users place an Alt-Account with an VPN on the server and are posting this command multiple times into the chat so that I don't find anything important in the log files and console.

Steps to reproduce

Use something like /mv TEST (Upper case needed)
Look into Console and Chat
My server is not crashing like in #2703 but my Console and Logs are spammed with the Warning - "PatternSyntaxException"

Agreements

[X] I have searched for and ensured there isn't already an open or resolved issue(s) regarding this.
[X] I was able to reproduce my issue on a freshly setup and up-to-date server with the latest version of Multiverse plugins with no other plugins and with no kinds of other server or client mods.

Should be fixed in v5.0.0 with the ACF commands


Set compile optimization runs for bridge

By the "research" of trustlines-network/project#630 to find the optimum of optimization runs when compile the contract (regarding gas costs), the feature to configure the runs has been added by trustlines-protocol/contract-deploy-tools#59. According to the update of the deploy tools dependency (trustlines-protocol/project#631) it makes sense to apply this for the bridge as well.

Regarding the home bridge, the deployment costs on the Trustlines chain should not matter. But  the function calls (confirmations) should be cheap. I found the maximum of optimization at 5000 runs. More runs do not improve anymore. Consider that the number of bridge transfers is big and each one needs to be confirmed by many validators, I think this is a good way to go.
For the foreign bridge this is slightly different. After deployment, the only calls are to burn the tokens. This must not happen too often and is not necessary at all for the functionality of the bridge. But the costs on the Ethereum mainnet must be considered. Thereby less optimization runs would lead to less deployment costs. Unfortunately by the current Makefile all contracts are compiled together. This could be split up, but costs work. The difference of deployment costs for the foreign bridge contract differ in maximum (1 run to 5000 runs) by 23.962 gas. Using an average amount of 6GWei this would mean <0.03$ additional costs by the current market price (0.27$ total cost prediction).
@andfletcher I would argue it is not worth the work to split the compilation for this less amount of additional cost. Do you agree? If so I would just configure to optimize for 5000 runs to be consistent with the home bridge. In favor the token burn functions calls are marginal more cheaper (really not countable with 50 gas units).

@weilbith yes i agree


Generalize walking through frames in a reporter

Related: https://github.com/open-telemetry/opentelemetry-ebpf-profiler/pull/208

I'm not convinced by this either. It requires passing a lot of context, and this heavy use of any and switch statements really isn't readable.
We can't use generics unless we setup yet another abstraction that would provide us a single interface to set/modify both data types.
Doing this could possibly be a better approach though.


Remember last used Libary

Love this plugin. Use it a lot.
Right now, every time when I run it, it asks me to select the Sketch library file and opens a Finder Browse window in my Mac user home folder.
Takes quite some clicks/key presses to find it.
Current workaround to speed up workflow:

Put the Sketch library location or file itself in the Finder favourites sidebar

A plugin enhancement would be preferred:

remember the Last Used Library for every next time you run the plugin
add 'Change Library' if you want to sync from another library

Or, maybe easier and still very helpful:

remember last used file or last used 'enclosing folder' in Finder Browse window
Or, if that's impossible:
open enclosing folder of current open Sketch file in Finder Browse window

added in 1.0.11

if there is no previous library, will be prompted to choose one


refactor: cfg for test/*

What does this PR do
cfg for test/*.rs
This PR also applies the netbsdlike alias added in #2226
Checklist:

[x] I have read CONTRIBUTING.md
[ ] I have written necessary tests and rustdoc comments
[ ] A change log has been added if this PR modifies nix's API

but needs a rebase

done

Needs another.

Needs another.

done


Replace style element in Navbar.js with styled component

This is mostly resolved in #82
There is still a


retry on api service unavailable errors

this should help w/ errors i'm seeing in our e2es:
https://openshift-gce-devel.appspot.com/build/origin-ci-test/pr-logs/pull/openshift_cluster-image-registry-operator/215/pull-ci-openshift-cluster-image-registry-operator-master-e2e-aws-operator/1180
operator.go:58: failed to get the operator logs: an error on the server ("apiserver is shutting down.") has prevented the request from succeeding (get pods)
imageregistry.go:158: unable to uninstall the image registry: failed to wait for the imageregistry resource to be removed: an error on the server ("apiserver is shutting down.") has prevented the request from succeeding (get configs.imageregistry.operator.openshift.io cluster)

obviously we need it in more places if it does help, but starting small for now.

/assign @dmage

/retest

/retest

/retest

replaced by https://github.com/openshift/cluster-image-registry-operator/pull/220


Add addressused in ActivityParty

{
  "description" : "",
  "subject" : "",
  "email_activity_parties" :
  [
    {
      "addressused"<EMAIL_ADDRESS>      "participationtypemask" : 1
    }
  ],
  "overriddencreatedon":"2017-01-01T00:00:00Z"
}

Definition
https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/activityparty?view=dynamics-ce-odata-9

Added the Attributes to the ActivityParty object.


The HashJoin and NestedLoopJoin gives different results for filtered joins fuzz tests.

          The HashJoin and NestedLoop Join gives different results for filtered joins fuzz tests.

In the same time HashJoin and SortMergeJoin results are correct.
Need to triage what is going on.
Originally posted by @comphead in https://github.com/apache/datafusion/pull/11535#discussion_r1683057641

The reproducer case is in join_fuzz.rs
#[tokio::test]
async fn test_anti_join_1k_filtered() {
    // NLJ vs HJ gives wrong result
    JoinFuzzTestCase::new(
        make_staggered_batches(1000),
        make_staggered_batches(1000),
        JoinType::LeftAnti,
        Some(Box::new(col_lt_col_filter)),
    )
    .run_test(&[JoinTestType::NljHj], false)
    .await
}

NestedLoopJoinExec and HashJoinExec produced different row counts, batch_size: 1
Left:  910
Right: 951

#[tokio::test]
async fn test_semi_join_1k_filtered() {
    // NLJ vs HJ gives wrong result
    JoinFuzzTestCase::new(
        make_staggered_batches(1000),
        make_staggered_batches(1000),
        JoinType::LeftSemi,
        Some(Box::new(col_lt_col_filter)),
    )
    .run_test(&[JoinTestType::NljHj], false)
    .await
}

NestedLoopJoinExec and HashJoinExec produced different row counts, batch_size: 1
Left:  91
Right: 37


Example code query multi-select using QueryExpression

Below lines of code throws an exception:
int[] hikingValue = new int[] { 2 };
ConditionExpression condition = new ConditionExpression("sample_outdooractivities", ConditionOperator.ContainValues, hikingValue);

The ConditionExpression takes in params object[] values, so the sample code should be:
object[] hikingValue = new object[] { 2 };

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 11ebfdca-617b-b72d-bf76-b73c29aad384
Version Independent ID: a059e128-6010-1c35-9fff-7fa041d76d8f
Content: Multi-Select Picklist attributes (Developer Guide for Dynamics 365 Customer Engagement (on-premises))
Content Source: ce/customerengagement/on-premises/developer/multi-select-picklist.md
Product: d365ce-op
GitHub Login: @JimDaly
Microsoft Alias: jdaly

I tested this using both:
object[] hikingValue = new object[] { 2 }; and  int[] hikingValue = new int[] { 2 };
Neither throws an exception.
Intis an object: Inheritance:
Object
ValueType
Int32
I don't see anything actionable here.


Edit panel position problem

Hello
I'm using grafana version 5.0.3 with osipi data source on windows os .
When I try to add a new graph or any type of data representation, I get the edit panel moved up on top of the graph. in such a way it hides the graph, instead of being down under the graph
attachment shows what I mean

I'm not having this issue with 5.0.0, but I will look into it.

Error:
Possibly unhandled rejection: {"data":{"Errors":["Not found: '\\'. Invalid object path format for '\\'.\r\nParameter name: path"]},"status":404,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"api/datasources/proxy/5/elements?path=\\","headers":{"X-Grafana-Org-Id":1,"Accept":"application/json, text/plain, /"},"retry":0},"statusText":"Not Found","xhrStatus":"complete"}

On your datasource configuration screen, does the 'test' pass for the PI connector?

yes  it pass the test

This might be your issue:

Old issue. Closing.


Doc: Mark node-only and browser-only methods

Please add marks to methods in API documentation which of them are Node.js-only and which are browser-only.

Good idea. Done.


[Release-1.25] - Update klipper-helm to support PodDisruptionBudget API deprecation

Backport fix for Update klipper-helm to support PodDisruptionBudget API deprecation

#7184

Validated on 1.25 branch using commit id 540d19b09730db2c55facb16f64c930d599a39e5
k3s version v1.25.8+k3s-540d19b0 (540d19b0)
go version go1.19.7

Environment Details
Infrastructure
Cloud EC2 instance

Node(s) CPU architecture, OS, and Version:
Ubuntu 20.04

Cluster Configuration:
Single node

Steps to validate the issue
Install k3s using latest commit
Validate helm install, helm upgrade, helm delete of any chart to verify there is no regresssion
Install and upgrade helm chart with PDB and upgrade k3s from v1.25.8 to latest commit

Results from validation:
Scenario 1: Chart without PDB
Install k3s from commit id from 1.25 branch
helm install nginx bitnami/nginx  --version 13.2.32
helm list

WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
NAME 	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART        	APP VERSION
nginx	default  	1       	2023-04-12 04:05:17.389334595 +0000 UTC	deployed	nginx-13.2.32	1.23.4

kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
nginx-5dc98cf47b-l4b86   1/1     Running   0          23s

helm upgrade nginx bitnami/nginx  --version 13.2.33

helm list
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
NAME 	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART        	APP VERSION
nginx	default  	2       	2023-04-12 04:05:50.220235326 +0000 UTC	deployed	nginx-13.2.33	1.23.4

helm delete  nginx

helm list
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
NAME	NAMESPACE	REVISION	UPDATED	STATUS	CHART	APP VERSION

Scenario 2: Chart with PDB
Install k3s version 1.25.8
Install chart with PDB
Upgrade k3s to commit from master branch
Upgrade chart with PDB
$ curl -fL https://get.k3s.io| INSTALL_K3S_VERSION=v1.25.8+k3s1 sh -s - server
$ sudo chmod 644 /etc/rancher/k3s/k3s.yaml
$ helm repo add cockroachdb https://charts.cockroachdb.com/
$ export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
$ helm install my-release cockroachdb/cockroachdb --version 10.0.6
helm list

my-release	default  	1       	2023-04-12 04:12:20.642543144 +0000 UTC	deployed	cockroachdb-10.0.6	22.2.6

helm get manifest my-release | grep -B 2 'kind: PodDisruptionBudget'
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
---
# Source: cockroachdb/templates/poddisruptionbudget.yaml

ubuntu@ip-172-31-5-202:~$ kubectl get pods
NAME                                READY   STATUS      RESTARTS   AGE
my-release-cockroachdb-init-s6t2h   0/1     Completed   0          42s
my-release-cockroachdb-0            1/1     Running     0          42s
my-release-cockroachdb-2            1/1     Running     0          42s
my-release-cockroachdb-1            1/1     Running     0          42s
ubuntu@ip-172-31-5-202:~$ kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                      STORAGECLASS   REASON   AGE
pvc-25e8ba7d-ee3d-472e-b3b9-4a1b13fd315f   100Gi      RWO            Delete           Bound    default/datadir-my-release-cockroachdb-2   local-path              43s
pvc-f68b66a1-973f-42f1-9686-069964ea0bbc   100Gi      RWO            Delete           Bound    default/datadir-my-release-cockroachdb-0   local-path              43s
pvc-782d1bd0-78c7-4042-8f63-65812a9e34a8   100Gi      RWO            Delete           Bound    default/datadir-my-release-cockroachdb-1   local-path              43s
ubuntu@ip-172-31-5-202:~$ kubectl get secrets
NAME                                   TYPE                 DATA   AGE
my-release-cockroachdb-ca-secret       Opaque               2      61s
my-release-cockroachdb-client-secret   kubernetes.io/tls    3      61s
my-release-cockroachdb-node-secret     kubernetes.io/tls    3      61s
sh.helm.release.v1.my-release.v1       helm.sh/release.v1   1      73s

Upgrade k3s and upgrade helm chart
curl -sfL https://get.k3s.io |  INSTALL_K3S_COMMIT=540d19b09730db2c55facb16f64c930d599a39e5 sh -s - server

ubuntu@ip-172-31-5-202:~$ helm list
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
NAME      	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART             	APP VERSION
my-release	default  	2       	2023-04-12 04:16:02.243227807 +0000 UTC	deployed	cockroachdb-10.0.7	22.2.7
ubuntu@ip-172-31-5-202:~$
ubuntu@ip-172-31-5-202:~$
ubuntu@ip-172-31-5-202:~$ kubectl get pods
NAME                                READY   STATUS      RESTARTS   AGE
my-release-cockroachdb-0            1/1     Running     0          4m4s
my-release-cockroachdb-init-xkjmh   0/1     Completed   0          31s
my-release-cockroachdb-2            1/1     Running     0          24s
my-release-cockroachdb-1            0/1     Running     0          6s
ubuntu@ip-172-31-5-202:~$ kubectl get pods
NAME                                READY   STATUS      RESTARTS   AGE
my-release-cockroachdb-0            1/1     Running     0          4m6s
my-release-cockroachdb-init-xkjmh   0/1     Completed   0          33s
my-release-cockroachdb-2            1/1     Running     0          26s
my-release-cockroachdb-1            0/1     Running     0          8s
ubuntu@ip-172-31-5-202:~$ kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                      STORAGECLASS   REASON   AGE
pvc-25e8ba7d-ee3d-472e-b3b9-4a1b13fd315f   100Gi      RWO            Delete           Bound    default/datadir-my-release-cockroachdb-2   local-path              4m6s
pvc-f68b66a1-973f-42f1-9686-069964ea0bbc   100Gi      RWO            Delete           Bound    default/datadir-my-release-cockroachdb-0   local-path              4m6s
pvc-782d1bd0-78c7-4042-8f63-65812a9e34a8   100Gi      RWO            Delete           Bound    default/datadir-my-release-cockroachdb-1   local-path              4m6s
ubuntu@ip-172-31-5-202:~$ kubectl get secrets
NAME                                   TYPE                 DATA   AGE
my-release-cockroachdb-ca-secret       Opaque               2      4m29s
my-release-cockroachdb-client-secret   kubernetes.io/tls    3      4m29s
my-release-cockroachdb-node-secret     kubernetes.io/tls    3      4m29s
sh.helm.release.v1.my-release.v1       helm.sh/release.v1   1      4m41s
sh.helm.release.v1.my-release.v2       helm.sh/release.v1   1      59s
ubuntu@ip-172-31-5-202:~$ kubectl get pods -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[0].image}{"\n"}'
my-release-cockroachdb-init-xkjmh	cockroachdb/cockroach:v22.2.7
my-release-cockroachdb-2	cockroachdb/cockroach:v22.2.7
my-release-cockroachdb-1	cockroachdb/cockroach:v22.2.7
my-release-cockroachdb-0	cockroachdb/cockroach:v22.2.7


[BUG] About series

The concept of series implies some order (typically chronological), for example, if a topic X is developed in the first post then the basic concepts will be treated and the next posts will use the basic concepts. For example you have the series "Getting start with DoIt" with the posts where based on the title and content the order should be:

Theme Documentation - Basics
Theme Documentation - Content
Theme Documentation - Built-in Shortcodes
Theme Documentation - Extended Shortcodes

I don't understand why the first post(03-06) has a newer creation date than the others(03-05, 03-04, 03-03). It would be great if the creation date is corrected.
Now if going to the underlying problem, it would be great that the order that the posts appear must be from the oldest to the newest. Currently the order is the opposite:

An additional request is that in the posts that belong to a series then a list of the other posts(links) be placed in order to be able to navigate easily, for example, take the post of this blog as an example: https://kubasejdak.com/techniques-of-variadic-templates

For the creation date issue, the DoIt theme is inherit from the LoveIt theme, and these documentations come from there as well. The creation date is set by the original author. I probably can change that to the "correct date".
For the order of the posts, I don't think changing it to sort from the oldest to the latest solves all problems. When you write a series of posts, you don't always start from the first one and write to the end, sometimes you might want to insert a new post in the series, or you might want to focus on the most attractive posts first. I think it is better to introduce a more flexible way of ordering the posts: Weight > Date > LinkTitle > FilePath so you can manually set the order of the posts by assigning them different weights.
The side affect of this method is that the posts will not be grouped by the years anymore.

The "2020" will not show up and the date format on the right needs to be updated.
The idea of a list of other posts is great! I guess I can reuse the style of the static toc and make it something like this


Update article with additional Note content for SharePoint mobile app.

Added additional info in Note about exclusively using SVG image for SP mobile app. Also, changed references from 'Office 365' to 'Microsoft 365' per Project Snowbird.

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks.

@kwekuako - This is another doc under @twernermsft, would you be the new author for this?
This PR has been copy edited and is ready for final review.
Thank you.
cc: @kenwith

Resolved conflicts and merging.


Functions for Matrix Exp,Log and Quantum Relative Entropy Divergence

I'm wondering if it would be possible to implement these. There are elementwise versions of exp, log, and kl-div, and some problems in machine learning (specifically online matrix factorization) require the matrix generalizations of them. For instance, see: http://arxiv.org/pdf/1204.0136.pdf
The exp and log are available in scipy.linalg. QRED is tr(XlogX - XlogA - X + A), where in these problems A is fixed from the previous step, and the gradient with respect to X is logX - logA.
I can try to do it- I'm not quite sure what the graph_implementation method is doing for Atoms though.

This sounds reasonable. The graph_implementation method rewrites the atom as partial optimization over a cone program (see this paper for examples https://stanford.edu/~boyd/papers/pdf/graph_dcp.pdf). All atoms in CVXPY need this method implemented.

Okay cool I'll check back in if I get it working or can't figure out the graph_implementation

Steve - in that paper it says that these types of functions can't be represented by SQLP. Is it still true that cvxpy only uses SQLP underneath or are there smooth solvers as well? Quoting:
"Key omissions include logarithms, exponentials, and entropy; such functions simply cannot be exactly represented in an SQLP solver"

There's also an exponential cone, supported by ECOS and SCS:
https://github.com/embotech/ecos
You can use it to represent logarithms, exponentials, entropy, etc.
On Tue, May 3, 2016 at 5:12 AM Ben Schreck<EMAIL_ADDRESS>wrote:

Steve - in that paper it says that these types of functions can't be
represented by SQLP. Is it still true that cvxpy only uses SQLP underneath
or are there smooth solvers as well? Quoting:
"Key omissions include logarithms, exponentials, and entropy; such
functions simply cannot be exactly represented in an SQLP solver"
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/cvxgrp/cvxpy/issues/278#issuecomment-216425688

Sorry, what exactly does Xlog(X) mean? Is this the same as -entr(X) in cvxpy?

No logX as in the matrix logarithm, so U*log(Sigma)V^T. Log of the singular values. And then matrix multiply XlogX. It's the matrix generalization of entropy

Ok, you might want to write an atom for tr(Xlog(X)) because I expect f(X) = XlogX is convex with respect to the PSD cone, i.e., f(theta*X + (1-theta)*Y) << theta*f(X) + (1-theta)*f(Y). This can't really be expressed in cvxpy right now. Check out the log_det atom for inspiration.

Yeah I'm pretty sure it's convex. I'll check out log_det

I'm closing this. Feel free to reopen it when you make more progress on adding the functions.

@SteveDiamond, I have a very similar situation to @bschreck (looking at entropic quantities in Quantum Mechanics) and I was wondering if anyone knows about implementations of this sort of thing. Specifically looking for matrix logarithm and matrix square root.

@aarongrisez Fawzi, Saunderson, and Parillo have a paper on semidefinite approximations of the matrix logarithm (https://arxiv.org/abs/1705.00812). I believe there is some kind of prototype implementation for this method which connects to CVX in MATLAB. Unfortunately such features are a long way off from being integrated into cvxpy (or any Python-based optimization platform, for that matter).


IFileSystemInfo.ResolveLinkTarget throws exception instead of returning null if the path is not a link

Describe the bug
System.IO.FileSystemInfo.ResolveLinkTarget returns null when the directory is not a link.
IFileSystemInfo.ResolveLinkTarget ends up crashing with a null reference exception.
ResolveLinkTarget implementation in DirectoryInfoWrapper.cs
public override IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget)
{
    return instance.ResolveLinkTarget(returnFinalTarget)
        .WrapFileSystemInfo(FileSystem);
}

WrapFileSystemInfo implementation in Converters.cs
private static FileSystemInfoBase WrapFileSystemInfo(IFileSystem fileSystem, FileSystemInfo item)
{
	if (item is FileInfo fileInfo)
	{
		return WrapFileInfo(fileSystem, fileInfo);
	}
	else if (item is DirectoryInfo directoryInfo)
	{
		return WrapDirectoryInfo(fileSystem, directoryInfo);
	}
	else
	{
		throw new NotImplementedException(string.Format(
			CultureInfo.InvariantCulture,
			"The type {0} is not recognized by the System.IO.Abstractions library.",
			item.GetType().AssemblyQualifiedName
		));
	}
}

The null reference we end up hitting is because item is null in WrapFileSystemInfo.
System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.
  Source=System.Private.CoreLib
  StackTrace:
   at System.Object.GetType()
   at System.IO.Abstractions.Converters.WrapFileSystemInfo(IFileSystem fileSystem, FileSystemInfo item) in /home/runner/work/System.IO.Abstractions/System.IO.Abstractions/src/TestableIO.System.IO.Abstractions.Wrappers/Converters.cs:line 42

To Reproduce
IFileSystem fs = new FileSystem();
IDirectoryInfo dirinfo = fs.Directory.CreateDirectory(@"C:\Some\Dir");
IFileSystemInfo? target = dirinfo.ResolveLinkTarget(true); //Crash

Expected behavior
ResolveLinkTarget should propagate the null return of the underlying System.IO API one way or another.
That API could do it directly, though it seems like WrapFileSystemInfo really ought to do the propagation itself.
Fix option #1:
private static FileSystemInfoBase WrapFileSystemInfo(IFileSystem fileSystem, FileSystemInfo item)
{
	if (item== null)
	{
		return null;
	}
	...
}

Fix option #2:
public override IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget)
{
    return instance.ResolveLinkTarget(returnFinalTarget)
        ?.WrapFileSystemInfo(FileSystem);
}

I would be happy to submit a fix for this, but would like some input from the project team first. Was it an intentional decision to not propagate nulls in WrapFileSystemInfo?

Wow, thanks for the detailed report, this is really appreciated!

I would be happy to submit a fix for this, but would like some input from the project team first. Was it an intentional decision to not propagate nulls in WrapFileSystemInfo?

No, it is a bug. All the Wrap* methods should pass on null values. Feel free to submit a PR :bow:


App: highlight physics incorrect

This seems to only affect the highlight mesh, not the actual physics collisions:
Probably a missing updateMatrixWorld

I see this occasionally but it is much rarer now.
Closing until we have reliable reproduction steps.


Use with Angular 2

I'm using https://github.com/500tech/ng2-mobx
How can I use this with angular 2?
Some code snippet please?

Unfortunately, I'm not familiar with Angular. I guess you are not allowed to have access to window object directly there. What's the error you get? I guess we should provide a helper like for redux. Maybe someone could step out and implement that here.

The solution it's  super simple thanks to this package I'm working now with devtools
Just install the npm package and use it in the store like this in angular 2, that should work!
import remotedev from 'mobx-remotedev/lib/dev';

@Injectable()
@remotedev({ name: 'Todo list', global: true })
export class EBandStore {

You should be able to use it without the @Injectable decorator (as long as there is any kind of decorator Angular can use DI on it)

@adamkleingit for me dependency injection doesn't work without @Injectable. And in tandem with @remotedevneither so. There seems to be really not way how to use@remotedev` as decorator on service?


Add a control to collapse "InfoBox" or reset the map

:bicyclist: Motivation
The InfoBox element consumes too much space on small screens, making it hard to see the map and switch countries.
:card_index: Considerations
Options:

a button to reset the map
an "expand/collapse" control for the list of artists

A "close" button is added: 86ca6b65d3b486a93376e7219fd8f54f16cef7c1

minor layout improvement: 206828a95788e1902de016dda41738bd6309b0ad


Add block spacing model and background

⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠
What

adds a general spacing model for all blocks, with a margin bottom of 60px
some blocks don't want this, so we have specific overrides e.g. share links and main navigation
this allows us to add a coloured background to blocks a bit more easily, although there are still slightly complex CSS rules around backgrounded blocks following others, where we need to do that (a heading preceding a govspeak block, for example, where they need to look like they're part of the same thing)
also changes the main block layout, so that all blocks can now have a full width background, and any blocks that should be page width will have the govuk-width-container element added inside them, not as part of the main block div

Why
Two reasons. We've not had consistent/general rules for block spacing, and the need for some blocks to have a full page width background is forcing this.
Visual changes
Blocks with and without the background, to show the difference.
First, the video 'block' (actually two blocks, including the heading)

Without background
With background

Progress area:

Without background
With background

Trello card: https://trello.com/c/iSQk5ZWA

@leenagupte I've had a rethink of this and I think this is a cleaner approach. Interested in your thoughts.

@AshGDS good spot, it's because of margin escape from the govspeak (have pushed a fix).

Thanks @andysellick - when I add full_width_background: true to the heading below the video, the spacing between them reduces - is that intentional? I'm assuming it is so the elements all look like they're all a part of the same grey square?

Yes, that's correct. It's because some sections are made up of multiple blocks and we need to account for that. For example, the heading above the video is part of a separate block, but we want to include it inside the grey background, which without the tweaks I've included would leave a gap between them and have wildly wrong padding.
I think the general takeaway from this is that we need some rules around the usage of this thing, basically no two consecutive sections should have this background applied, but it is designed to allow headings to fit closer together with their content.
So yes, we wouldn't give the same background to both the video 'section' and whatever follows it.


fix(jest-core): Correct typo in performance.mark() label for scheduleAndRun:end

Summary
Fixes my typo from https://github.com/jestjs/jest/pull/13859 - I'd accidentally marked jest/scheduleAndRun:start both before and after await scheduleTests().
Test plan
Since upgrading to Jest 29.6.3 we now have instrumentation running for Jest at Meta and will be able to measure any startup improvements or regressions - happy to share aggregate data :). Thanks @SimenB in particular for your support on this.
(Ok, that wasn't really a test plan. 👀  for this one, I guess.)

No rush to release this btw - I've worked around it in our Jest wrapper for now, this would just be useful to tidy up the next time we get around to a Jest bump.

instrumentation running for Jest at Meta and will be able to measure any startup improvements or regressions - happy to share aggregate data :)

Oh wow, awesome!

https://github.com/jestjs/jest/releases/tag/v29.6.4


⚠ Cioos National CKAN has degraded performance

In 74ba238, Cioos National CKAN (https://catalogue.cioos.ca/) experienced degraded performance:

HTTP code: 200
Response time: 5347 ms

Resolved: Cioos National CKAN performance has improved in d978e11 after 5 minutes.


Erc721 tokens not showing on account

Problem:
The account 0x862Bd4208b2F6ed64Ce92AAdA2669d3c5CC705d9 has one Cozy Cosmonauts NFT but it doesn't appear on the subgraph.
The subgraph isn't indexing the NFTs correctly, it should pick up all NFTs provided the tokenURI of the NFT is a valid http url or a valid ipfs url
Resources:
cozy cosmonauts nft
fuse nft subgraph

How to reproduce the issue, could you give me a full example 👀

@mul53 can you test my hotfix ?

@mul53
Hello, I have gone through your Gitcoin bounty. From what I understood, you need a subgraph that is going to index NFTs based on User.
For that, the schema should be completely changed and there should be a one-to-many relation between User and Collectible entity such that If you search for a User you get back all the NFTs in the account.

is this bounty still open?

Hi I have opened a PR for this bounty!


Validation rule parser removes unvalidated data from Form Requests

Laravel Version: v8.55.0
PHP Version: v8.0.8
Database Driver & Version: N/A

Description:
The new (https://github.com/laravel/framework/blob/578a76c2d53e416ce7037bc01c96be7877ed8442/src/Illuminate/Validation/ValidationRuleParser.php) validation rule parser removes any unvalidated data from Form Requests. Previously one could not define validation rules for a certain parameter in order to allow it pass through to the validated result array. While this might be intended behaviour, it is a change that breaks some applications.
Steps To Reproduce:

Create a new Form Request
Define some validation rules
Add a parameter without validation rules
Call $request->validated()
See that the unvalidated data is missing

public function rules()
{
    return [
        'title' => 'required|unique:posts|max:255',
        'body' => '',
    ];
}

Thanks for reporting. I'll leave it to @taylorotwell to decide if that's a breaking change. Personally I don't think it is.

Thanks @sander3 for reporting this, we hit the same issue now when we tried to update.
Turns out we had lots of 'attribute' => '' rules for some reason, just to include these in $data->validated() or being returned from the ->validate().
Our tests caught this and using 'nullable' instead seems to resolve it.

Thanks @sander3 for reporting this, we hit the same issue now when we tried to update.
Turns out we had lots of 'attribute' => '' rules just to include these in $data->validated() or being returned from the ->validate() call.
Our tests caught this and using 'nullable' instead seems to resolve it.

Nullable is not always the intended behaviour of those empty validation rules!

https://laravel.com/docs/8.x/validation#rule-present might cover it.

Yeah, if you put nullable on the attribute or something that should cover it.


move ops and step errors into control flow enum

Because we're already using enums to control flow, I was thinking we should move the generated state into the returned enum instead of mutating so that the overall control flow is more readable and testable.
One of the main downsides to this approach is if we need to accumulate ops across more than one method call on the Step. Otherwise, think this makes the methods less mutable and more testable. Wdyt @darwin67?

@matthewgapp this probably can be closed now that the state is encapsulated?

Closing this PR as it has been resolved elsewhere.


feat: Deploy a corresponding EOAccount when the RPC receives a tx from a funded but not deployed EOA

Feature Request
Describe the Feature Request
In the EVM, there is no sense of deploying an EOA. All the addresses are always existing, eventually with no code.
Currently, when processing a signed tx, the RPC needs to use the deployed EOAccount corresponding to the EVM EOA used to send the tx.
This account needs to be deployed already, which doesn't make sense for the EVM world.
Describe Preferred Solution
When broadcasting a transaction, the RPC should check if the corresponding contract already exist and if not, send a DEPLOY_ACCOUNT transaction first.
Not that since the EOA tries to send a tx, it's assumed that it has ETH (otherwise not possible to send a tx). So the RPC doesn't need to send a deploy account tx and the deployed account will pay for the fees.

Hello @ClementWalter , I can take this :)

We want the user's resulting starknet address from that deployment to be equal to kakarot.compute_starknet_address(user_evm_address)

The agreed upon approach as of now is:

User makes a call to RPC with an EOA
RPC checks if the corresponding Starknet account exists or not
If it doesn’t then it sends the deploy account transaction to the sequencer, which should automatically take care of deploying this account and taking the fee from the account.

For this PR to be made, firstly a PR for this issue has to be merged on Kakarot main repo.


University official website URL - https://ipi-akademija.ba/

URL of a page on the official website where a long-term (>1 year) IT related course is offered by the university - https://ipi-akademija.ba/our-programs

@otacxxl First stage of verification passed, official domain is ipi-akademija.ba as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@otacxxl Pull request merged. Thank you.


deprecate baseTemplates to simplify loading and OS list flicker

disable fields when loading

bug: https://bugzilla.redhat.com/show_bug.cgi?id=1730390

@mareklibra @rawagner
IMO web-ui-components base mock templates shouldn't be needed anymore. Current usage causes inconsistent behaviour on user's side.
Thoughts?

Pull Request Test Coverage Report for Build 2181

3 of 4 (75.0%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.08%) to 82.422%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/utils/templates.js
2
3
66.67%

Files with Coverage Reduction
New Missed Lines
%

src/components/Wizard/CreateVmWizard/stateUpdate/vmSettingsTabStateUpdate.js
1
82.12%

Totals

Change from base Build 2178:
-0.08%

Covered Lines:
4004

Relevant Lines:
4650

💛  - Coveralls

+1 for removing mocked templates

I agree that mock templates can be removed now, as the kubevirt's deployment has already settled down and templates are mandatory part of it. In addition, the dialog won't be rendered without kubevirt installed.


Fixed link for CreateDefaultBuilder docs

There was a link in the document pointing towards the documentation for CreateDefaultBuilder but it was broken so I updated it with the right one.

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

Thank you @federicorinaldi! I fixed up a few other links and made them all relative. I'll merge this after the build completes.
Could you sign the CLA :point_up:? ... We can't accept the PR unless the CLA is signed.

Signed! :D


Exploring potential collaboration between Kairos and Bootc projects

hello! :wave:
I've just learned today about https://github.com/containers/bootc ! I tried to reach over matrix but was redirected here - I'm the maintainer of https://github.com/kairos-io/kairos which is a project that have many crossing points with bootc, and I was wondering myself if you would be interested in having a chat! I see there are community events for podman but none for bootc.  Just curious, how does it handles upgrades without ostree? is it a/b style? is the OS immutable or takes over only the upgrade process?
Best

Hi, thanks so much for filing this!  At a quick glance, I'd say there's indeed 85% overlap between the goals and methodology of the projects.  But there's a lot of interesting stuff in that remaining 15% :smile:
First and most obviously, bootc is a brand new project written mostly by one person with little documentation and no production use.  Whereas it looks like Kairos is much more mature.  But the point is that the current backing code (mostly ostree) is also very mature with lots of production use - this is just a thin new "frontend" to it.  (There's literally just ~500 lines of code in this repo today, though that will change once https://github.com/containers/bootc/pull/30 lands).
I am totally open to collaboration!  I think once bootc progresses a little bit we will start having community meetings indeed, or to piggy-back on the podman ones for 5-10 minutes perhaps.
I'd also be open to joining Kairos community events.  To start, I'm now in the Matrix channel.
Offhand, some things in that remaining 15%:

A major point of bootc is that making custom images is literally the same process as application images.  What you push to a registry is exactly the same filesystem as what's pulled and booted, whereas it looks to me like Kairos is partition-oriented, so has an extra step where an ISO is created and pushed to a registry?  I need to dig into this a bit more.
This isn't stated directly but for me bootc has a toplevel goal to enable seamless in-place updates for existing ostree users.  Because we have a lot of production users we can't just drop or even require to reprovision.
bootc aims to support all Linux types, not just Kubernetes nodes.  Specifically including "standalone" and non-cloud systems, like IoT and desktops.  This leads into the next bit:
The details around partition setup, specifically things like /etc being ephemeral clash with the above.  On a desktop, I don't want my WiFi configuration stored in /etc/NetworkManager to be flushed on reboots.  Similarly for bare metal servers, static IP addresses are a real use case.  On a cloud, sometimes I do want /etc flushed, sometimes I don't.
bootc is not attempting to do things like build cloud images and ISO images itself; I think we should leave that to distribution tools.  Or at least, maybe this project would have "demonstrators" of that.
We've been making an increasing investment in Rust for the last few years from both teams that are involved in this project (coreos/ team and the containers/ team).  Obviously Go will be here for the remainder of my career at least, but I've been repeatedly burned by its "superficial simplicity" and using Rust for bootc was a very deliberate choice.

Just curious, how does it handles upgrades without ostree? is it a/b style?

It doesn't at all today, but indeed part of the idea is that we should also support that flow.  I'd like to investigate standardizing or at least collaborating on shared code for things like how to store and manage raw block devices stored in a registry.  The obvious thing of just sticking a disk image in a tar layer is painful from a bandwidth perspective; in coreos we have tooling called "osmet" that synthesizes disk images from ostree and tar (much like jigdo).
Thanks again for filing this and bringing Kairos to my awareness.  Looking forward to continuing this conversation and collaborating!

Thanks for the quick answer!

Hi, thanks so much for filing this! At a quick glance, I'd say there's indeed 85% overlap between the goals and methodology of the projects. But there's a lot of interesting stuff in that remaining 15% smile
First and most obviously, bootc is a brand new project written mostly by one person with little documentation and no production use. Whereas it looks like Kairos is much more mature. But the point is that the current backing code of bootc (mostly ostree and the new ostree Rust) is also very mature with lots of production use - this is just a thin new "frontend" to it. (There's literally just ~500 lines of code in this repo today, though that will change once #30 lands).
I am totally open to collaboration! I think once bootc progresses a little bit we will start having community meetings indeed, or to piggy-back on the podman ones for 5-10 minutes perhaps.

Awesome :) looking forward to hear more

I'd also be open to joining Kairos community events. To start, I'm now in the Matrix channel.
Offhand, some things in that remaining 15%:
* A major point of bootc is that making custom images is _literally the same process_ as application images.  What you push to a registry is _exactly the same filesystem_ as what's pulled and booted, whereas it looks to me like Kairos is partition-oriented, so has an extra step where an ISO is created and pushed to a registry?  I need to dig into this a bit more.

That's the same approach of Kairos. The image being pulled can be run with docker, podman, etc as a standard application, but still bootable from Kairos without any container engine (it does loopback mount the image behind the scene). As per partitioning, it is completely flat, and used just to store bootable images: https://kairos.io/docs/architecture/immutable/#design
Additional tooling is in place to convert a container image to a bootable ISO, or a raw disk.

* This isn't stated directly but for me bootc has a toplevel goal to enable seamless in-place updates for existing ostree users.  Because we have a lot of production users we can't just drop or even require to reprovision.

I see! that's interesting and could be a meeting point. I always wanted to explore an ostree backend for Kairos, and maybe bootc might be at hand.

* bootc aims to support _all_ Linux types, not just Kubernetes nodes.  Specifically including "standalone" and non-cloud systems, like IoT and desktops.  This leads into the next bit:

* The details around partition setup, specifically things like `/etc` being ephemeral clash with the above.  On a desktop, I don't want my WiFi configuration stored in `/etc/NetworkManager` to be flushed on reboots.  Similarly for bare metal servers, static IP addresses are a real use case.  On a cloud, sometimes I do want `/etc` flushed, sometimes I don't.

Right, this indeed isn't really obvious from our docs but Kairos while has primarly focus for Kubernetes it does handle well also outside of it. /etc is ephemeral, but partially as it can be completely customized to be flushed or not. Indeed for Kubernetes we need several paths to be writable and persistent into /etc, as well as some systemd related ones.

* bootc (and ostree) have first-class support for SELinux.  This affects a rather surprisingly large set of design choices in implementation.

Altough we don't support it directly yet, it is in our roadmap and I do agree it tends to be a can of worm, but I see a lot of crossing points between our projects!

* bootc is _not_ attempting to do things like build cloud images and ISO images itself; I think we should leave that to distribution tools.  Or at least, maybe this project would have "demonstrators" of that.

:+1:

* We've been making an increasing investment in Rust for the last few years from both teams that are involved in this project (coreos/ team and the containers/ team).  Obviously Go will be here for the remainder of my career at least, but I've been repeatedly burned by its "superficial simplicity" and using Rust for bootc was a very deliberate choice.

:+1:  I don't have a strong opinion here, but I welcome Rust. I think languages are just barriers to what someone wants to really achieve and the computer, so I don't mind, and there are obviously better choices than others based on the scope of the software.

Just curious, how does it handles upgrades without ostree? is it a/b style?

It doesn't at all today, but indeed part of the idea is that we should also support that flow. I'd like to investigate standardizing or at least collaborating on shared code for things like how to store and manage raw block devices stored in a registry. The obvious thing of just sticking a disk image in a tar layer is painful from a bandwidth perspective; in coreos we have tooling called "osmet" that synthesizes disk images from ostree and tar (much like jigdo).

For kairos we don't store separate disks and push them as containers images - we flatten the container image in runtime when we write it to disk so there is still one source of truth - you can run the container locally as an app, or just boot it seamlessly.

Thanks again for filing this and bringing Kairos to my awareness. Looking forward to continuing this conversation and collaborating!

Thanks to you! It was good to understand to set expectations and understand where bootc is heading to, I'll be joining community events as soon as they are up!


Unable to disable colorcolumn

It seems I am unable to disable the colorcolumn in the neo-tree buffer sometimes.
In init.lua:
vim.opt.colorcolumn = "80"

In ftplugin/neo-tree.lua:
vim.opt_local.colorcolumn = ""

I would expect, that there would be no colorcolumn when starting nvim and :Neotree, but it is there. However, switching to the neo-tree buffer and :lua vim.opt_local.colorcolumn = "" hides the colorcolumn as expected.
Using neovim nightly and neo-tree v2.x.

sweet work!


Adding Retry Interceptor for Failed Requests and Endpoint Display

This pull request introduces a new feature that enhances the error handling and user experience in our React application. It implements an interceptor to automatically retry failed requests and provides a clear display of the failing endpoint to the user.
Changes Made:
Added a new interceptor to the Axios HTTP client in our React application.
The interceptor detects failed requests and automatically retries them based on a predefined retry count.
When a request fails, the interceptor captures the failing endpoint and stores it.
Modified the user interface to display a user-friendly error message indicating the failing endpoint.
Enhanced error handling to provide detailed information and better user feedback.

Hello sir please help me
On Thu, Jul 20, 2023, 3:10 AM Cristhian Zanforlin Lousa <
@.***> wrote:

This pull request introduces a new feature that enhances the error
handling and user experience in our React application. It implements an
interceptor to automatically retry failed requests and provides a clear
display of the failing endpoint to the user.
Changes Made:
Added a new interceptor to the Axios HTTP client in our React application.
The interceptor detects failed requests and automatically retries them
based on a predefined retry count.
When a request fails, the interceptor captures the failing endpoint and
stores it.
Modified the user interface to display a user-friendly error message
indicating the failing endpoint.
Enhanced error handling to provide detailed information and better user
feedback.
You can view, comment on, or merge this pull request online at:
https://github.com/logspace-ai/langflow/pull/660
Commit Summary

fd33342
https://github.com/logspace-ai/langflow/pull/660/commits/fd33342ef9c8f8bb05433be5af0d297e64be2f8e
📦 chore(frontend): add @types/axios package to improve type checking in
API code
6486fb3
https://github.com/logspace-ai/langflow/pull/660/commits/6486fb31fbe4ac227d6ef8d39a470fe6658e0927
🔨 refactor(api.tsx): reorganize imports and fix import paths for better
readability and consistency
f17a7d6
https://github.com/logspace-ai/langflow/pull/660/commits/f17a7d639e0706689e0002c2e5dad5bee2d63545
🐛 fix(api.tsx): update retry count limit from 3 to 5 for better error
handling
fd981d8
https://github.com/logspace-ai/langflow/pull/660/commits/fd981d8a864362e6caee471c6b8ab7de78c3a34a
🔧 fix(api.tsx): fix import statements and refactor code for better
readability and maintainability
bd0cffa
https://github.com/logspace-ai/langflow/pull/660/commits/bd0cffac6a5f01ca7b0e8838d808a2b4dab62059
formatting coce

File Changes
(8 files https://github.com/logspace-ai/langflow/pull/660/files)

M src/frontend/package-lock.json
https://github.com/logspace-ai/langflow/pull/660/files#diff-9eaa8c31e85b60ae25c139f2d6363cc9dcb6926125b5bf1d0cac092547e8cfcb
(25)
M src/frontend/package.json
https://github.com/logspace-ai/langflow/pull/660/files#diff-12ee508ecc1901fe1a1d71ed459dba8454f3160983ee18b2c51b76ade45235d3
(1)
M src/frontend/src/contexts/typesContext.tsx
https://github.com/logspace-ai/langflow/pull/660/files#diff-2582e4b7533e178d08b33de64a119a5326c45ac632fca092def1848dfa513ba6
(13)
A src/frontend/src/controllers/API/api.tsx
https://github.com/logspace-ai/langflow/pull/660/files#diff-40877b80b2243cdac1ce21fa28ef5d9e9ab22eaf0051893e4c3236c3ec273150
(58)
M src/frontend/src/controllers/API/index.ts
https://github.com/logspace-ai/langflow/pull/660/files#diff-6ffcc38b2c3b81f6ff8d5caf63b6e644cec42c24f185eee26424ccb9c9aeb090
(48)
M src/frontend/src/index.tsx
https://github.com/logspace-ai/langflow/pull/660/files#diff-d2f8515a5da5fdbaafcfe7f5be649fa68b891afe926f96bcc71a2d247cba04df
(2)
M src/frontend/src/modals/formModal/index.tsx
https://github.com/logspace-ai/langflow/pull/660/files#diff-8374ea2582a6933c1938f7001e8e56a029df98e4adb8808538184a47557712be
(2)
M src/frontend/tailwind.config.js
https://github.com/logspace-ai/langflow/pull/660/files#diff-4bc7172c36162d64fef6da98ebff8abeb26ce8db31c9ab4df95fefbc56afffdb
(2)

Patch Links:

https://github.com/logspace-ai/langflow/pull/660.patch
https://github.com/logspace-ai/langflow/pull/660.diff

—
Reply to this email directly, view it on GitHub
https://github.com/logspace-ai/langflow/pull/660, or unsubscribe
https://github.com/notifications/unsubscribe-auth/BBEI66MLZ5CBKSVJYAIRRDTXRBH3DANCNFSM6AAAAAA2QQOOLE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


SSL Layer Configuration For Virtual Hosts

A separate SSL configuration for every vhost. Currently only one configuration is in karaf/web/pax possible.
Workaround is to use apache-http to redirect port, provide SSL and switch to plain http. This could be a steady solution also if the apache is used as cache for static resources. But it seems the problems are to difficult (authentication and authorization).

Is done in the apache conf.


[WIP] ENH: Erode WM mask by proportion

This change erodes WM mask (approximately) to target proportions of original white matter voxel counts.
Closes #716

This is a proportionally-eroded mask:


Feature Request: Live Preview mode

Currently this only works in reading mode. I'd love to have the image context menu in live preview mode as well!

Do local files also not work in live preview or is it just online image embeds?
I can reproduce the online issue, but local ones work fine for me.

Local files are working fine for me in live preview. Almost all my images are embeds, so I didn't realize this until you asked!


vimPlugins.vim-clap: 0.54-unstable-2024-08-11 -> 0.54

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for vimPlugins.vim-clap is: Modern performant fuzzy picker for Vim and NeoVim
meta.homepage for vimPlugins.vim-clap is: https://github.com/liuchengxu/vim-clap
meta.changelog for vimPlugins.vim-clap is: https://github.com/liuchengxu/vim-clap/blob/3e8d001f5c9be10e4bb680a1d409326902c96c10/CHANGELOG.md
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.54 with grep in /nix/store/d97zjc0vy41ic6brak0lgqxplkifb95p-vimplugin-vim-clap-0.54
found 0.54 in filename of file in /nix/store/d97zjc0vy41ic6brak0lgqxplkifb95p-vimplugin-vim-clap-0.54

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath

vimPlugins.vim-clap
vimPluginsUpdater

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/d97zjc0vy41ic6brak0lgqxplkifb95p-vimplugin-vim-clap-0.54 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A vimPlugins.vim-clap https://github.com/r-ryantm/nixpkgs/archive/745210c8df3c8cf44d1ecb8eb3e428e265fdba62.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/745210c8df3c8cf44d1ecb8eb3e428e265fdba62#vimPlugins.vim-clap

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/d97zjc0vy41ic6brak0lgqxplkifb95p-vimplugin-vim-clap-0.54
ls -la /nix/store/d97zjc0vy41ic6brak0lgqxplkifb95p-vimplugin-vim-clap-0.54/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

vimPlugins.vim-clap
vimPluginsUpdater

Maintainer pings

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

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

see https://github.com/NixOS/nixpkgs/pull/335807

r-ryantm will open a duplicate PR if we close this

ok sry.


Get List of Sections (Enhancement)

Create functionality to get a list of all sections in the INI file.

Ok, the function was already there, but not exposed.
use getAllSections
In addiction, I created one more function:
toMap -> get all ini file as Map (json)
Thank you!

Wow! Awesome response time! Thanks!


Error: "could not parse IP: [xxxx:xxxx:xxxx::0001]"

Hi!
I´m trying to use echoip behind a proxy to identify what is my IPv6, but got an error.
I´m not golang specialist but i think that the problem is in net.ParseIP, because the IPv6 that cames in some X-Forwared-For header has "brackets". Probably it is a "feature" of netscaler for default to add "brackets". (file: echoip/http/http.go, line 108)
Perhaps, this is not an issue, a PR maybe.
{   "status": 400,   "error": "could not parse IP: [xxxx:xxxx:xxxx::0001]" }
I got other error when a tried to identify IPv6 address using link-local IP, because of the "%eth0". But i think this is not important
{   "status": 400,   "error": "could not parse IP: fe80::1c00:b2ff:fe00:951%eth0" }

I logged the remoteIP variable.
If i configure the netscaler, enabling the default feature to add client ip address, the header comes with brackets.
But, if i create an action thats includes client ip address,  the header comes without brackets.
echoip: http.go:108: [xxxx:14c:71:8f5e::xxx]
echoip: http.go:108: xxxx:14c:71:8f5e::xxxx

Interesting finding, I found this old reference and this interesting snippet.

A "newbie" way to solve this, only for my tests was:
ip := net.ParseIP(strings.Replace(strings.Replace(remoteIP,"]","",1),"[","",1))
attention, this is not a suggested solution. only for test. :-D


fix(indexer): panic when headers is nil

Fixed a panic in the indexer util package, as the headers parameter maybe nil.
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1299bc2]

This bug has been fixed in the indexer branch.


Textdirection RTL Not working !

Please fix this problem !
Textdirection RTL Not working
[√] Flutter (Channel stable, v1.7.8+hotfix.3, on Microsoft Windows [Version 10.0.16299.1087], locale en-US)
    • Flutter version 1.7.8+hotfix.3 at C:\Program Files\flutter
    • Framework revision b712a172f9 (8 weeks ago), 2019-07-09 13:14:38 -0700
    • Engine revision 54ad777fd2
    • Dart version 2.4.0

Do you have any steps to reproduce the problem?

Hello @ThamerRamzi !
Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the issue, if you have any more information for us; we will reopen it right away!
Thank you for your contribution.
P.S. If anyone still experience the same problem, please file a new issue with the information required in the template.
All system setups can be slightly different so it’s always better to open new issues and reference related issues.

for using TextDirection.rtl remove this piece of code from your file:
import 'package:intl/intl.dart';

for using TextDirection.rtl remove this piece of code from your file:
import 'package:intl/intl.dart';


Hygiene

General cleaning of most used areas of the code

You can choose if you like the style of brackets around if statements or not. You are consistent, so you can just leave all the way you have them.

Yep. I think its best to have the least number of characters, so we should start to take them away when we spot this.


Failed to build OpenBLAS on debian (stable and testing) using cmake.

I tried to build OpenBLAS in debian docker-image, and it fails.
The failure is due C_FLAGS prepend by "=;".
$ mkdir build
$ cd build
$ cmake .. -DBUILD_SHARED_LIBS=ON
-- The C compiler identification is GNU 8.3.0
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
CMake Warning at CMakeLists.txt:64 (message):
  CMake support is experimental.  It does not yet support all build options
  and may not produce the same Makefiles that OpenBLAS ships with.

-- GEMM multithread threshold set to 4.
-- Multi-threading enabled with 2 threads.
-- The Fortran compiler identification is GNU 8.3.0
-- Check for working Fortran compiler: /usr/bin/gfortran
-- Check for working Fortran compiler: /usr/bin/gfortran  -- works
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Checking whether /usr/bin/gfortran supports Fortran 90
-- Checking whether /usr/bin/gfortran supports Fortran 90 -- yes
-- Running getarch
-- GETARCH results:
CORE=SKYLAKEX
LIBCORE=skylakex
NUM_CORES=2
HAVE_MMX=1
HAVE_SSE=1
HAVE_SSE2=1
HAVE_SSE3=1
HAVE_SSSE3=1
HAVE_SSE4_1=1
HAVE_SSE4_2=1
HAVE_AVX=1
HAVE_AVX2=1
HAVE_AVX512VL=1
HAVE_FMA3=1
MAKE += -j 2

-- Compiling a 64-bit binary.
-- Building Single Precision
-- Building Double Precision
-- Building Complex Precision
-- Building Double Complex Precision
-- Reading vars from /__w/OpenBLAS/OpenBLAS/kernel/x86_64/KERNEL...
-- Reading vars from /__w/OpenBLAS/OpenBLAS/kernel/x86_64/KERNEL.SKYLAKEX...
-- Reading vars from /__w/OpenBLAS/OpenBLAS/kernel/x86_64/KERNEL.HASWELL...
-- Building deprecated routines
-- Building Single Precision
-- Building Double Precision
-- Building Complex Precision
-- Building Double Complex Precision
-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Could NOT find Threads (missing: Threads_FOUND)
-- Generating openblas_config.h in include/openblas
-- Generating f77blas.h in include/openblas
-- Generating cblas.h in include/openblas
-- Copying LAPACKE header files to include/openblas
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: /__w/OpenBLAS/OpenBLAS/build

$ cat interface/CMakeFiles/interface.dir/flags.make
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.13

# compile C with /usr/bin/cc
C_FLAGS =  =; -Wall -m64 -march=skylake-avx512 -DF_INTERFACE_GFORT -fPIC -DSMP_SERVER -DMAX_CPU_NUMBER=2 -DMAX_PARALLEL_NUMBER=1 -DNO_AFFINITY -DVERSION="\"0.3.9.dev\""

C_DEFINES =

C_INCLUDES = -I/__w/OpenBLAS/OpenBLAS -I/__w/OpenBLAS/OpenBLAS/build

$ make
[  0%] Building C object interface/CMakeFiles/interface.dir/CMakeFiles/scopy.c.o
cc: error: =: No such file or directory
cc: fatal error: no input files
compilation terminated.
/bin/sh: 1: -Wall: not found
make[2]: *** [interface/CMakeFiles/interface.dir/build.make:63: interface/CMakeFiles/interface.dir/CMakeFiles/scopy.c.o] Error 127
make[2]: Leaving directory '/__w/OpenBLAS/OpenBLAS/build'

Have you checked if this ";" is set somewhere in your environment ? I somehow doubt that the OpenBLAS build files themselves contain this stray character - after all both the CI jobs and my local builds run fine.


Fix case when right corner is sharp in rtl if there is one element

Observed the bug on Chrome

Taken using Galen

@dlockhart @Surekh Good to go?

ping @dlockhart @Surekh

@awikkerink sorry, yep LGTM

LGTM!


How to a make alterations in the heading style.

I want to do something simple, for example change the black heading backcolor from black to white.
I looks like the place to make the change is here:

function myFunction() {
  var x = document.getElementById('navbar');

  if (x.className === 'topnav') {
    x.className += ' responsive';
  } else {
    x.className = 'topnav';
  }
}

In this file, https://github.com/hasura/gatsby-gitbook-starter/blob/master/src/components/Header.js
But I can't figure out where the style topnav is defined. Maybe I am missing something. If so, please excuse my oversight.
Any help will be greatly appreciated.

Found the answer, https://github.com/hasura/gatsby-gitbook-starter/blob/master/src/components/styles/GlobalStyles.js

Figure it out


Use socketpair instead of pipe for tests

Description of changes:
As described in #1287 on some linux systems pipes maybe limited to 4KB in size, causing s2n_self_talk_nonblocking_test to fail as it relies on full record to be sent, which is 16KB in test.
This change switches unit tests from pipe to unix domain sockets, which have larger limits.
Call-outs:
This PR has 2 commits to  simplify reviewing:

63bd93c - the actual changes
f62bd84 - the pieped_io to io_pair rename

I had to update s2n_self_talk_nonblocking_test to write about 10MB of data, as previous 120KB weren't enough to saturate unix socket buffer.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #1993 into master will decrease coverage by 6.77%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1993      +/-   ##
==========================================
- Coverage   87.00%   80.23%   -6.78%
==========================================
  Files         150      232      +82
  Lines       11737    17376    +5639
==========================================
+ Hits        10212    13941    +3729
- Misses       1525     3435    +1910