Blank screen after using plugin-wkwebview-engine

Bug Report
White screen after plugin install
Problem
I have bumped my cordova-ios version from 5.0.0 to 5.1.1 in order to use this plugin and remove uiwebview from project. When I add this plugin I now get a white screen with no errors. Any help would be greatly appreciated.
What is expected to happen?
App launch like normal but without uiwebview
What does actually happen?
App launches with white screen.
Information

Command or Code

Environment, Platform, Device

Version information

Checklist

[x] I searched for existing GitHub issues
[x] I updated all Cordova tooling to most recent version
[x] I included all the necessary information above

Can you confirm that the config has been added to your config.xml
<feature name="CDVWKWebViewEngine">
  <param name="ios-package" value="CDVWKWebViewEngine" />
</feature>

<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

https://github.com/apache/cordova-plugin-wkwebview-engine#configxml

I have updated my original comment with images of relevant config sections. As you can see I have included the config.

I had the same kinda issue and had to add https://github.com/apache/cordova-plugins/blob/wkwebview-engine-localhost/README.md and the other requirements detailed on the git readme to work.

Hmm, do you know what your config.xml looks like now, specifically the plugin tags? I am having issues using cordova plugin add since this project has a complicated build chain using a Grunt file. To test this I was hoping to just add the localhost plugin you referenced into my config.xml and then run my grunt task.

I have removed all my plugins and test my app without this plugin, everything works fine on cordova-ios 5.0.0. I can confirm that this plugin is causing the white screen issue.

Are there any reported javascript errors in the safari web inspector? Do note that you'll need to refresh the webview once the inspector is opened to see any startup errors because I don't think safari shows any logging before the inspector is connected. You should able to do this by pressing cmd+r in while the web inspector is focused.
I would think javascript errors to show in the xcode log, but someone I think on slack was having problems with this, so best to double check safari web inspector to be sure.

Yes! I have found the error, was not using safari inspector at first. Here is the error I am getting, I am not sure why though or how to fix. Any help would be greatly appreciated.

With WKWebView, you have to obey CORS.
Normally, you have to modify your webserver to add the appropriate CORS headers, but since you're using XHR requests on local files, there is obviously no webserver at play here, so adding those appropriate headers becomes difficult.
The solution is to either use cordova-plugin-file to load those files using the filesystem APIs instead
OR
Use the third-party cordova-plugin-wkwebview-file-xhr plugin which intercepts the XHR requests and excluding the origin header.
For your case, since it looks like angular is the one making those requests, you're probably best off on using the wkwebview-file-xhr plugin. Be sure to read their known issues to determine if you'll be affected by it.
Let me know if this helps.

I had the same problem with my Angular8+ app. I ended up using hash routing for mobile devices:
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules, useHash: true }),
and the following line in index.html
<script>document.write('<base href="' + document.location + '" />');</script>

This app was written in AngularJS. Below is the code that is being used to load the views. Any suggestions how I would implement either @breautek  or @elmartino  solutions with this code? From the examples that I have seen I was not able to see how these solutions could be applied. May just be me not knowing the details of this area. I appreciate the support, thank you very much.
$stateProvider             .state('dashboard', {                 url: "/dashboard",                 resolve: {                     xmlFirstLoad: xmlFirstResolve,                     loadStatus: loadStatus                 },                 templateUrl: "app/views/dashboards/dashboard.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = true;                 }             })             .state('calendar', {                 url: "/calendar",                 resolve: {                     xmlFirstLoad: xmlFirstResolve,                     loadStatus: loadStatus                 },                 templateUrl: "app/views/pages/calendar.view.template.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = true;                 }             })             .state('admin', {                 url: "/admin",                 resolve: {                     xmlFirstLoad: xmlFirstResolve,                     loadStatus: loadStatus                 },                 templateUrl: "app/views/pages/admin.view.template.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = true;                 }             }).state('assessment', {                 url: "/assessment",                 resolve: {                     xmlFirstLoad: xmlFirstResolve,                     loadStatus: loadStatus                 },                 templateUrl: "app/views/pages/assessment.view.template.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = true;                 }             })             .state('todayworkout', {                 url: "/todayworkout",                 resolve: {                     xmlFirstLoad: xmlFirstResolve,                     loadStatus: loadStatus                 },                 templateUrl: "app/views/pages/todayWorkout.view.template.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = true;                 }             })             .state('create', {                 url: "/create",                 resolve: {                     xmlFirstLoad: xmlFirstResolve,                     loadStatus: loadStatus                 },                 templateUrl: "app/views/pages/create.view.template.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = true;                 }             })             .state('wait', {                 url: "/wait",                 resolve: {                     xmlFirstLoad: xmlFirstResolve,                     loadStatus: loadStatus                 },                 templateUrl: "app/views/pages/wait.view.template.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = true;                     $rootScope.hideMenu = true;                 }             })             .state('profile', {                 url: "/profile",                 resolve: {                     xmlFirstLoad: xmlFirstResolve,                     loadStatus: loadStatus                 },                 templateUrl: "app/views/pages/profile.view.template.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = true;                 }             })             .state('tasks', {                 url: "/tasks",                 resolve: {                     xmlFirstLoad: xmlFirstResolve,                     loadStatus: loadStatus                 },                 templateUrl: "app/views/tasks/tasks.html"             })             .state("login", {                 url: "/login",                 resolve: {                     xmlFirstLoad: xmlFirstResolve                 },                 templateUrl: "app/views/pages/login.view.template.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = false;                 }             }).         state("reset", {                 url: "/reset/:resetToken",                 resolve: {                     xmlFirstLoad: xmlFirstResolve                 },                 templateUrl: "app/views/pages/login.view.template.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = false;                 }             })             .state("register", {                 url: "/register?plan&title&value",                 resolve: {                     xmlFirstLoad: xmlFirstResolve                 },                 templateUrl: "app/views/pages/register.view.template.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = false;                 }             })             .state("information", {                 url: "/information",                 resolve: {                     xmlFirstLoad: xmlFirstResolve                 },                 templateUrl: "app/views/pages/information.view.template.html",                 controller: function ($rootScope) {                     $rootScope.isHomePage = false;                 }             });     })

I'm not overly familiar with angular (i used angular a very long time ago...) but based on the callstack, it looks like angular is the one that is making the XHR request.
This is why I said installing the https://github.com/oracle/cordova-plugin-wkwebview-file-xhr will likely be the easiest solution. I don't think you need to do any code changes. This works because the plugin overrides the implementation of XMLHttpRequest

I'm only familiar with Angular2+ but i think you could try only the 2nd part of my solution.

@breautek so you think that just by installing that plugin it could solve the problem?

Update: Still getting the same error.

Try:
<script>document.write('<base href="' + document.location + '" />');</script>
Inside your <head></head>

Like this I'm assuming? Still didn't fix the white screen :(
Thank you for all the help!

Is there any possibility that cordova-plugin-wkwebview-engine-localhost could work? As @BradCB mentioned it solved his problem. I have however tried replacing cordova-plugin-wkwebview-engine with cordova-plugin-wkwebview-engine-localhost and I get dependency errors with my version of cordova-file-plugin. It says I need to use ^5.0.0 but when I use that it still gives the same error.

@BraydenGirard you need both plugins,  cordova-plugin-wkwebview-engine, and  cordova-plugin-wkwebview-engine-localhost

You should remove the other base element
Verstuurd vanaf mijn iPhone

Op 22 apr. 2020 om 17:33 heeft Brayden Girard<EMAIL_ADDRESS>het volgende geschreven:

Like this I'm assuming? Still didn't fix the white screen :(
Thank you for all the help!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@BradCB ok, I will try that.
@elmartino Which base element are you suggesting I remove? The one in my screenshot looks like it is being inserted dynamically. Would that not be what the script tag you suggested I add do? The screenshot is after the page has been loaded in the browser. If I look at the html file in my editor that base element does not exist.

@BraydenGirard I think you need cordova-plugin-wkwebview-engine plugin AND
cordova-labs-local-webserver plugin AND cordova-plugin-wkwebview-engine-localhost. I could be mistaken but that's how I got it working....

It works on iOS 12.0/12.1 but not 12.2, does anybody has solution for that?

Yeah, when I add both I get a dependency error with corodova-file-plugin saying it needs to be version 5.0.0 even though I have that version...

@elmartino: do you use the ChangeDetectionStrategy.OnPush in your project? After adding cordova-plugin-wkwebview-file-xhr the view does not refresh but data are loaded correctly from api.

ChangeDetectionStrategy

I just use default ChangeDetectionStrategy. I didn't used any other cordova wkwebview plugins than the cordova-plugin-wkwebview-engine
U just added the useHash part in my case only if environment = mobile (i have seperate environment files)
 RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules, useHash: environment.mobile }),
and the line
<script>document.write('<base href="' + document.location + '" />');</script> instead of the default <base> tag.

@elmartino: do you use web api requests in your project? Without cordova-plugin-wkwebview-file-xhr I cannot get data from api because of "XMLHttpRequest cannot load https://www.myapi.org/endpoint due to access control checks." error.

Yes i do, but you have to fix them on server side not in client side. You should make sure your sure accepts CORS requests (or use a proxy)

My server accept CORS, the configuration is as follow c#:
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Credentials", new[] { "true" });
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Headers", new[] { "authorization", "content-type", "set-cookie" });

What I'm missing?

Maybe access-control-allow-methods? Maybe test it using https://www.test-cors.org/

@elmartino: the cordova-plugin-wkwebview-engine works as long as HttpCookies are not needed. There is a PR  to fixes http cookies. I wonder if and how do you handle http cookies?

I don't use HttpCookies. I use JWT (json web token)

I had an Angular app integrated with Cordova and had trouble getting the app to load using Cordova's WebView Plugin. Since none of the solutions worked for me, I ended up using Ionic's WKWebView plugin (https://github.com/ionic-team/cordova-plugin-ionic-webview).
Even though, this plugin was built primarily for ionic, as the doc suggests, it can potentially be used for any Cordova app.
These are the steps I followed:

Integrate the plugin:
cordova plugin add cordova-plugin-ionic-webview

Add an entry to config.xml:
<preference name="WKWebViewOnly" value="true" />

Prepare the project
cordova prepare ios

I even uploaded the app to TestFlight and Apple did not complain of UIWebView, which sort of validates the fix.

@srinidhirao: do you know whether cordova-plugin-ionic-webview accept cookies?

@kzimny I don't know specifically. But a quick search on their GitHub page lists various issues with the Cookies. Some even claiming that WKWebView itself has issues with cookies:
One such post:
https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/300

cordova-plugin-ionic-webview

This solution worked for me. The only issue I am having now is that my app viewport does not fill the entire phone screen (black bars on top and bottom). Anyone else experience this?

Yes, I solved the margin problem with meta viewport setting:
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>My page</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover">
    <link rel="icon" type="image/x-icon" href="assets/favicon/favicon.ico">
    <script type="text/javascript" src="cordova.js"></script>
</head>
    <body>
        <root></root>
    </body>
</html>

I actually got it working by doing the following:
https://github.com/ionic-team/ionic-v1/issues/341#issuecomment-622538876

I have been dealing with the same issue. It's a react app. I followed the cordova documentation. Added this config in my config.xml:
<feature name="CDVWKWebViewEngine">
     <param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

cordova-plugin-ionic-webview plugin is not installed in the project. But still getting the white blank screen.
I also tried adding the WKWebViewOnly preference flag as  <preference name="WKWebViewOnly" value="true" /> but no luck.
If I remove the plugin it just works fine. But then TestFlight rejects it.
Any help would be greatly appreciated!

@srinidhirao
@BraydenGirard
My project specification
Angular JS Ionic Application
cordova-ios 4.3
cordova-android 6.0
Following your suggestion I did the following
cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add cordova-plugin-ionic-webview
ionic build ios
ionic build android
This works perfectly fine in case of ios as the cordova-ios version of my app is supported by this plugin. But In case of android I am not even able to install my app. Maybe this has got to do with cordova-adndroid version of my app(6.0). And I cannot upgrade my cordova-android verison. So is this a dead end or we still have a way. Awaiting your inputs.

cordova-ios 4.3

This version of cordova-ios is old and won't satisfy Apple's UIWebView deprecation. I would advise you to upgrade to<EMAIL_ADDRESS>
Maybe this has got to do with cordova-adndroid version of my app(6.0)

This plugin has nothing to do with android. The WKWebView is an iOS concept.
Also cordova-android@6 is no longer supported because it doesn't support API level 28, which is required by Google Play store.

@breautek
Thanks for the quick reply, Actually i tried a dummy build in ios after following the steps mentioned  in my above comment and I am still getting the warning message. Any words of wisdom.

Don't know what to tell you. It sounds like you're going to need to refactor your app.
Cordova generally don't support older major releases because they, generally speaking, are not accepted by Apple or Google for one reason or another. If you can't update to<EMAIL_ADDRESS>then respectfully you're on your own.
You can try forking cordova-ios, branch off the 4.5.x branch and then implementing the WKWebViewOnly flag yourself. The PR that implements this flag can be found at https://github.com/apache/cordova-ios/pull/715 ... but I can almost guarantee you will run into other compatibility issues, so this is definitely will not be a long-term solution, and something I would personally avoid.

Don't know what to tell you. It sounds like you're going to need to refactor your app.
Cordova generally don't support older major releases because they, generally speaking, are not accepted by Apple or Google for one reason or another. If you can't update to<EMAIL_ADDRESS>then respectfully you're on your own.
You can try forking cordova-ios, branch off the 4.5.x branch and then implementing the WKWebViewOnly flag yourself. The PR that implements this flag can be found at apache/cordova-ios#715 ... but I can almost guarantee you will run into other compatibility issues, so this is definitely will not be a long-term solution, and something I would personally avoid.

Hey, I know, there is very little I can do here. But the option that you gave is worth a try given the limited options available for me. Although I am using svn as a repository and I am wondering how would i branch off the 4.5x and get the commit 715 on my local. Thanks in advance

I'm not sure, its been ages since I last used SVN. But this is no longer the place for this kind of discussion, sorry.

I'm not sure, its been ages since I last used SVN. But this is no longer the place for this kind of discussion, sorry.

Thanks. No worries.

Hi @breautek,
Here is what I did.
cordova plugin add cordova-plugin-wkwebview-engine
added  in the applications' config.xml -- to overwrite any uiwebview instances during complie time
cordova plugin add cordova-plugin-wkwebview-file-xhr -- to overcome CORS error
ios prepare
ios build and run the application and everything looked good.
Then In XCode I searched instances of UIWebview and found a couple of plugins using them. Here is the list
cordova-plugin-inappbrowser
cordova-plugin-x-socialsharing.
I removed these plugins. With a purpose to test whether my application would pass the apple test.
Then, I pushed a dummy build to apple store and still received the warning message.
Attaching screenshot of the plugins folder in XCode.
Please be also informed that I have not upgraded the cordova ios platform. It's still at 4.3.
Awaiting your advice. Thanks.

As I said before, Cordova's stance is to upgrade your app to use the latest supported platform versions, which has the code necessary to be apple compliant. So if you're taking an unsupported direction I have to ask you to please stop posting on our github. Github is for us tracking issues.
A more appropriate place for questions like this would be our slack. I cannot really answer your question because I'm not well knowledgeable in the native iOS code. But someone in our cordova-ios channel might be able to provide some general pointers.
Thank you for your cooperation.

this is a known WKWebView issue, you can use https://github.com/oracle/cordova-plugin-wkwebview-file-xhr to fix the problem, or move to cordova-ios 6 and use a custom scheme

how to solve this issue? I have added the plugins but still their issue.
how can I get this solve?

I had the same problem with my Angular8+ app. I ended up using hash routing for mobile devices:
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules, useHash: true }),
and the following line in index.html
<script>document.write('<base href="' + document.location + '" />');</script>
(instead of <base href='/'>)

Thank you so much! I did not have the useHash: true before, adding it solved the issue for me.

I had to add following two lines to config.xml according to Cordova 10 Documentation

I had to add following two lines to config.xml according to Cordova 10 Documentation

Hi All, What is the fix for this issue ?does it requires plist changes or configuration XML changes . I am seeing a white screen with no errors being shown on Safari inspector?

You can update to the latest cordova-ios library which has a in-built support for wekwebview. If you do that, you don’t require this plugin to enforce WKWebview
On 23 Sep 2021, 12:36 PM +0530, rohanawa @.***>, wrote:

Hi All, What is the fix for this issue ?does it requires plist changes or configuration XML changes . I am seeing a white screen with no errors being shown on Safari inspector?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

My app is Cordova based angular app and I am having issues of white screen after app launch on the device only. Simulator doesnt have any issues.
I followed the cordova documentation.
Using "cordova-ios": "^6.2.0"
Added this config in my config.xml:

cordova-plugin-wkwebview-engine plugin is not installed in the project.
Tried with and without installing cordova-plugin-wkwebviewxhrfix plugin also.
But still getting the white blank screen.

If I remove the line  from config.xml file, it just works fine without white screen. But then Apple/TestFlight rejects it with reason ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more

When Cordova-ios 6.0.0 was released, the default UIWebView got updated with WKWebView.  So, you don't have to install this plugin to get the WkWebview support which was required in older Cordova projects.
Please check the docs:
https://cordova.apache.org/announcements/2020/06/01/cordova-ios-release-6.0.0.html#:~:text=Moved WKWebView support,plugin-wkwebview-engine.

@srinidhirao From the documentation, I understand that cordova-ios 6.0.2 should work flawless without external plugins like cordova-plugin-wkwebview-engine and cordova-plugin-wkwebviewxhrfix. Also the line  in config.xml becomes obsolete with cordova-ios 6.0.2 version.
Then why does apple/testflight rejects app without the line  in config.xml ?
Adding 'WKWebViewOnly' preference launches app with white screen indefinitely on the device but works well on simulator.
If we try to fix white screen issue by removing 'WKWebViewOnly' preference in config.xml file, app loads the screen without issues in device and simulator. But this resolution will reject app from Testflight/Appstore.
Any help to resolve the white screen issue and acceptance by TestFlight/appstore would be appreciated

To check the white-screen issue,  may be you can try debugging the app using the Safari Inspector as documented here:
https://cordova.apache.org/docs/en/10.x/guide/next/#debugging-cordova-apps

WKWebViewOnly preference was added in<EMAIL_ADDRESS>as a stopgap measure when Apple starting rejecting apps with UIWebView reference.
The preference was removed in 6.0 (effectively forcefully enabled) as there is no UIWebView anymore in the core platform to properly handle Apple's new requirements. The fact that changing this setting causes different behaviours tells me that something didn't update properly when you upgraded to @6.2.
I'd also suggest that you check and ensure that you're using the latest version of the cordova cli. You can use cordova -v to check the version, and compare against the latest version published. (v10.0.0 at the time of writing). If the CLI version is update to date, then I'd also suggest nuking all the generated files:
rm -rf platforms
rm -rf plugins
rm -rf node_modules
rm package-lock.json
npm install
cordova platform add ios

If you're upgrading from 5.1 using the wkwebview plugin, ensure the wkwebview plugin has been removed, as this will cause conflicts.
If the issue still persists, white screens are generally JS errors which can be debugged using Safari's inspector as hinted above. Note that Safari does't report on log messages that occurred prior to the debugger being attached. You can work around this by refreshing the webview by pressing cmd + r when the Safari Inspector is focused. This will reload the app's webview while the debugger still being attached so that you can see all logs from the initial load.
If you see no logs in the JavaScript console, then you may have to use XCode to view the native logs to gain more insight.
Last few notes on Apple's deprecation message:
Apache Cordova maintains two packages that may use the UIWebView, which is cordova-ios platform itself & the cordova-plugin-inappbrowser. So if you use the inappbrowser plugin, you'll also need to ensure that plugin is fully up to date. There are a number of third-party plugins that may use UIWebView as well. Some known ones are:

google maps plugin
pretty much any social media plugin
firebase plugins

If you use any of these plugins, be sure they are up to date.

@breautek Thanks you for your helpful advice!
Now issue of white screen and rejection from apple is resolved.
Among the changes I have done below, I really don't know which one of them really did work.

Removed unused plugins:
cordova-plugin-email-composer
cordova-plugin-mauron85-background-geolocation
Removed wkwebview plugin and WKWebViewOnly preference
Added below preference in config.xml

<platform name="ios">
        <preference name="scheme" value="app" />
        <preference name="hostname" value="localhost" />
</platform>

Ran the commands suggested by you

rm -rf platforms
rm -rf plugins
rm -rf node_modules
rm package-lock.json
npm install
cordova platform add ios

Earlier Azure pipeline was building app with Cordova CLI version 9.0.0 . Now I have updated it to Cordova CLI version 10.0.0

@breautek Thank you for your helpful advice!
Now issue of white screen and rejection from apple is resolved.
Changes I have done in the app are as below, but I really don't know which one of them really did work.

Removed unused plugins:
cordova-plugin-email-composer
cordova-plugin-mauron85-background-geolocation
Removed wkwebview plugin and WKWebViewOnly preference
Added below preference in config.xml

<platform name="ios">
        <preference name="scheme" value="app" />
        <preference name="hostname" value="localhost" />
</platform>

Ran the commands suggested by you

rm -rf platforms
rm -rf plugins
rm -rf node_modules
rm package-lock.json
npm install
cordova platform add ios

Earlier Azure pipeline was building app with Cordova CLI version 9.0.0 . Now I have updated it to Cordova CLI version 10.0.0

tanks a lot


Add custom headers

[ ] Changes have been thoroughly tested to not break existing functionality.
[x] New functionality has been documented or existing documentation has been updated to reflect changes.
[ ] Visual changes are explained in the PR description using a screenshot/recording of before and after.

This PR adds the ability to add custom headers for the media library plugin.

Perfect. Thanks for following our code style exactly! It really helps the review process.


json-tag is missing on edges struct

When generating code the struct holding the edges information has no json tag.
// SessionEdges holds the relations/edges for other nodes in the graph.
type SessionEdges struct {
	// User holds the value of the user edge.
	User *User
	// loadedTypes holds the information for reporting if a
	// type was loaded (or requested) in eager-loading or not.
	loadedTypes [1]bool
}

Edges are rendered to CamelCase while fields rendered to snake_case. This is confusing and seems unintended.

Hey @masseelch, you can use the StructTag option for adding the JSON tags.
I'll add it to the FAQ page. Thanks

Yes, i know. I just think its confusing, that the generator adds the JSON tags to the fields but not the edges. If i want a JSON-tag on the edge, i have to explicitly set it. The fields get it by default.
This is what i meant. Sorry if I was not clear enough about it.

@a8m sorry to necropost, but I was wondering: any reason why there is no default json tag on edges but only on fields? This feels inconsistent

@a8m sorry to necropost, but I was wondering: any reason why there is no default json tag on edges but only on fields? This feels inconsistent

Sorry to add to a closed issue - I'm just starting out with ent and came across the same issue. The docs even imply that there should be a json-tag by default.
https://entgo.io/docs/schema-edges/#struct-tags
edge.To("pets", Pet.Type).
    // Override the default json tag "pets" with "owner" for O2M relationship.
    StructTag(`json:"owner"`),

Sorry to add to a closed issue - I'm just starting out with ent and came across the same issue. The docs even imply that there should be a json-tag by default.
https://entgo.io/docs/schema-edges/#struct-tags
edge.To("pets", Pet.Type).
    // Override the default json tag "pets" with "owner" for O2M relationship.
    StructTag(`json:"owner"`),

Hey all, and sorry @thehowl for the delayed response - I missed it for some reason.
I added a patch for changing the behaviour according to the docs - https://github.com/facebook/ent/pull/1204.  Please update to latest if you need this:
go get github.com/facebook/ent@master

Thanks for your feedback.

Hey all, and sorry @thehowl for the delayed response - I missed it for some reason.
I added a patch for changing the behaviour according to the docs - https://github.com/facebook/ent/pull/1204.  Please update to latest if you need this:
go get github.com/facebook/ent@master

Thanks for your feedback.


[FEAT] Support upgrades of just link config or provider config

Currently, the check to ensure that a scaler is meaningfully different from a previous version is done by comparing the IDs to each other. However, the ID for a link scaler does not include its values, and the ID for a provider scaler does not include its provider config. We should generate some form of short hash of linkdef values and provider and append that to the ID so we can delete + put a link, or stop + start a provider when the configuration changes.

hey @brooksmtownsend , i created a draft PR that has changes to address this issue for the SpreadScaler > LinkScaler. It is a p.o.c and i want to get some feedback to know if this is in alignment with what you have in mind. If yes, I can go ahead and do the same for the SpreadScaler > ProviderScaler (and which other ones?). If not, a pointer or two to set me on the right path would be great.

@ahmedtadde left some feedback, I think it's exactly what I had in mind! I think the same should be done for the provider SpreadScaler and the provider DaemonScaler since they are both in charge of starting providers. Your approach with values should effectively be the same as config there to get the hash.
Once you get that updated I think we should look into adding some extra cases to the e2e upgrade test where we test only modifying a link value and a provider config and assert that worked. If you run into any test flakes let me know, we've been trying to improve them lately. As far as I could see with my testing, e2e_multitenant sometimes fails on a status assertion but the core logic works.

hey @brooksmtownsend i pushed several commits for the provider config hash (both, spreadscaler & daemonscaler). I also updated e2e_upgrade ( let me know if the added test code actually does enough to be useful with regards to the code changes).

@brooksmtownsend should this be closed?


API returns 403 when logs are uploaded

Seems like the latest changes broke the API, when uploading normal logs it seems to be returning 403 forbidden, but when random garbage text is uploaded the API will work as expected (I am using the mclogs-java repo for uploading logs if that helps)

Might be related to #51. Not sure but make sure to give it a try

Could you provide the log you're trying to upload?

message-under8mb.txt < This one does not work
test.txt < This one is just garbage data, but it works

Please try again now

Please try again now

Yup! It seems to work now. Thanks!


Question: How to use scripting

Hi,
I would like to use a script for a page login.
How do I choose for which scenario or testrun he should call that script?
Thanks you
Florian

Scripting certainly works via the WPT API but the tests from the spreadsheet that include a script seem to fail at the moment, so I'm having a look into it.

OK here's an example of a sheet with tests that use a script - https://docs.google.com/spreadsheets/d/1VU7QJTOexSlOSLS4KGThOJA8eP1kSN7--rpAwMaEudo/edit?usp=sharing
You'll need to add a script column using the ParametersMap in the Settings Tab, then after you've run the menu item to update the Scenarios column headings paste the script into a single cell
I'd recommend testing the script in WPT first to make sure it works

Nice! Thank you very much!


The links have been broken for the list of international groups in docs/

The list of international workgroups was moved
from https://wiki.hyperledger.org/display/fabric/International+groups
to https://wiki.hyperledger.org/display/I18N/International+groups.
But the documents have used the old one (https://wiki.hyperledger.org/display/fabric/International+groups).

I made https://github.com/hyperledger/fabric-docs-i18n/pull/551

merged (https://github.com/hyperledger/fabric-docs-i18n/pull/551)


BIGTOP-2960: Building Hue requires python-ipaddress package

@youngwookim  : Yep, this may fix this problem . But I like to fix it more the python way by installing dependencies via pip upstream in the hue virtualenv . Did you do a runtime test for hue? I found a couple of issues with our new setup  .

Olaf, Thanks for the comment. That's just what I wanted to ask :-) Patch does not work as I expected. Need to dig around in upstream project. I'll close this PR


Extract eureka admin page/resource as a separate gradle module.

I have removed AdminPageResource. getInstanceHostName + its related meta field, as it is not used by current karyon2 views, and it introduces dependency on eureka. If some views need it, we would have to bring it back, but not within this module.

karyon-pull-requests #129 SUCCESS
This pull request looks good


Cancelling failing cilium-health probes results in a tight loop which spams the terminal.

Bug report

Persistenly failing cilium-health probes are in a loop until some general timeout: https://github.com/cilium/cilium-cli/blob/30310b18ae7751beb43744691c2e68c589b65861/connectivity/tests/health.go#L43-L65
Typical log would be
⚠  cilium-health validation failed: "cilium-agent 'kube-system/cilium-wgcls': connectivity to path 'kind-worker.health-endpoint.primary-address.http.status' is unhealthy: 'Get \"http://<IP_ADDRESS>:4240/hello\": read tcp <IP_ADDRESS>:50650-><IP_ADDRESS>:4240: read: connection reset by peer'", retrying...

As a result, one might want to stop the health check prematurely, e.g. with a Ctrl+C. This seems to cancel ctx, upon which https://github.com/cilium/cilium-cli/blob/30310b18ae7751beb43744691c2e68c589b65861/connectivity/tests/health.go#L46-L50 fails with
  cilium-health probe failed: "error sending request: Post \"https://<IP_ADDRESS>:53497/api/v1/namespaces/kube-system/pods/cilium-wgcls/exec?command=cilium-health&command=status&command=--probe&command=-o%3Djson&stderr=true&stdout=true\": dial tcp <IP_ADDRESS>:53497: operation was canceled", stdout: {"" '\x00' '\x00'}, retrying...

Because of the continue, this just leads to a tight loop, spamming the above warning into the terminal at a high rate.
General Information

Cilium CLI version (run cilium version)

cilium-cli: v0.12.11-40-g2fc0835f compiled with go1.19.4 on darwin/arm64
cilium image (default): v1.12.4
cilium image (stable): v1.12.5
cilium image (running): v1.12.5

Orchestration system version in use (e.g. kubectl version, ...)

Client Version: v1.26.0
Kustomize Version: v4.5.7
Server Version: v1.25.3

Platform / infrastructure information: Kind

How to reproduce the issue
~I'm not sure why the health probes ended up failing in the first place, but once in that state, it's easy 😅~

Start kind without specifying disableDefaultCNI: true, but with multiple nodes. The following works with kind create cluster --config ...:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker

Run cilium connectivity test --test health. You should see failing health probes now, with the above log.
Press Ctrl+C
See spam fly by on the console.

I agree this should be fixed. It seems like we should check ctx.Done() if pod.K8sClient.ExecInPod returns an error and only continue if the context wasn't cancelled (or the timer expired, for that matter).
The fix should be fairly straight-forward, I'll mark this as good-first-issue.

Hello 👋,
i am interested in contributing to this issue
/assign


Add cache headers (etag, last-modified, max-age, etc) + 304 Not Modified

I've noticed that because browserify doesn't include any of these, Chrome 32 will ALWAYS re-download the wzrd.in files on each new page load. This is really slow and frustrating.

This would be great. Is anyone working on this?

Bump! This is pretty crucial for a CDN service!

CDN is a misnomer, which is why I tried to remove all the references--never got around to the logo


change the connection ID when creating a new IETF QUIC session

Fixes #1003. Depends on #1368.

Codecov Report

Merging #1369 into master will increase coverage by <.01%.
The diff coverage is 95.58%.

@@            Coverage Diff             @@
##           master    #1369      +/-   ##
==========================================
+ Coverage   89.98%   89.99%   +<.01%
==========================================
  Files         119      120       +1
  Lines        8346     8358      +12
==========================================
+ Hits         7510     7521      +11
  Misses        550      550
- Partials      286      287       +1

Impacted Files
Coverage Δ

mint_utils.go
63.04% <0%> (ø)
:arrow_up:

session_map.go
100% <100%> (ø)

server.go
90.99% <100%> (-1.18%)
:arrow_down:

server_tls.go
76.6% <100%> (+0.34%)
:arrow_up:

packet_packer.go
92.1% <100%> (+1.27%)
:arrow_up:

client.go
89.05% <91.3%> (-1.13%)
:arrow_down:

session.go
77.7% <94.12%> (-0.09%)
:arrow_down:

... and 1 more

Continue to review full report at Codecov.

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


EditorInspectorPlugin children go out of bounds when using Control.set_anchors_and_margins_preset

Godot version:

3.2.3 stable
OS/device including version:

Windows 10, GLES2
Issue description:

Tried adding a label to a texture rect and set the label's anchors and margins to the bottom right preset, it caused the label to go off the screen.
Here's a screenshot from the minimal reproduction project showing a green panel added as a custom inspector control, and the green panel has a smaller red panel as a child of it and it's had it's anchors and margins set to the bottom left preset. You can't see the red panel as it's off the screen, but I'm using https://github.com/Zylann/godot_editor_debugger_plugin to highlight the red panel so you can see where it is.

Steps to reproduce:
Create a control node. Add another control node as a child. Try and position the child node. Add the base control node as a custom editor control.
Minimal reproduction project:

MinimumReproProject.zip

You are not using containers. The second panel is bound to the left bottom corner of the first panel and then proceeds to grow in its natural direction: down and to the right.
If you want to overlay them, you need to use a container like MarginContainer and instead of anchors use size flags with appropriate values. (Namely, no horizontal flags and shrink end for vertical if you want to add the control to the bottol left).


[SPARK-34961][SQL] Migrate First function from DeclarativeAggregate to TypedImperativeAggregate to improve performance

What changes were proposed in this pull request?

The main objective of this change is to improve performance in some cases.
We have three possibilities when we plan an aggregation. In the first case, with mutable primitive types, HashAggregate is used.
When we are not using these types we have two options. If the function implements TypedImperativeAggregate we use ObjectHashAggregate. Otherwise, we use SortAggregate that is less efficient.
In this PR I propose to migrate First function to implement TypedImperativeAggregate to take advantage of this feature (ObjectAggregateExec)
Before the change:
scala> Seq((0, "value")).toDF("key", "value").groupBy("key").agg(first("value")).explain()
== Physical Plan ==
SortAggregate(key=[key#130], functions=[first(value#131, false)])
+- *(2) Sort [key#130 ASC NULLS FIRST], false, 0
   +- Exchange hashpartitioning(key#130, 200), true, [id=#114]
      +- SortAggregate(key=[key#130], functions=[partial_first(value#131, false)])
         +- *(1) Sort [key#130 ASC NULLS FIRST], false, 0
            +- *(1) LocalTableScan [key#130, value#131]

After the change:
scala> Seq((0, "value")).toDF("key", "value").groupBy("key").agg(first("value")).explain()
== Physical Plan ==
AdaptiveSparkPlan isFinalPlan=false
+- ObjectHashAggregate(keys=[key#313], functions=[first(value#314, false, 0, 0)])
   +- Exchange hashpartitioning(key#313, 200), ENSURE_REQUIREMENTS, [id=#208]
      +- ObjectHashAggregate(keys=[key#313], functions=[partial_first(value#314, false, 0, 0)])
         +- LocalTableScan [key#313, value#314]

Why are the changes needed?

To improve the performance of the first function when we are not using mutable primitive types
Does this PR introduce any user-facing change?

No, the behavior remains equal
How was this patch tested?

Manually and with all the tests we have that ensure that the behavior remains equal.

Can one of the admins verify this patch?

In general DeclarativeAggregate should be faster than ImperativeAggregate. Based on this benchmark the CentralMomentAgg was migrated from imperative to declarative. So I assume, that for primitive types the first would become slower because of this change.

Thanks for handling the issue.
I was wondering, should the Last operator reflects the same changes? I expect it to have a SortMergeAggregate as well

Perhaps @cloud-fan can comment on this. Why does ObjectHashAggregateExec require at least on of its aggregate functions to be TypedImperativeAggregate?
https://github.com/apache/spark/blob/4b5fc1da752ec008468ef80a5717c8beab468387/sql/core/src/main/scala/org/apache/spark/sql/execution/aggregate/ObjectHashAggregateExec.scala#L143-L149
Without that check the decision tree would be much simpler:

Are all agg buffers fixed with? Use HashAggregateExec
Is conf.useObjectHashAggregation enabled? Use ObjectHashAggregateExec
Use SortAggregateExec

Hi @tanelk ,
First, thanks for sharing the benchmark, I was concerned about something like that could happen,it does not seem very reasonable to lose performance in this case.
Without having a very deep understanding, ObjectHashAggregateExec uses a different way to manage the aggregation buffer, it supports buffer states with variable sizes, so it needs it’s own iterator (ObjectAggregationIterator) and allows to define a buffer in the typedImperativeAggregate function.
Thank you for your input, i will try to find a solution that don’t lose the performance we have achieve with DeclarativeAggregate functions

Perhaps @cloud-fan can comment on this. Why does ObjectHashAggregateExec require at least one of its aggregate functions to be TypedImperativeAggregate?
https://github.com/apache/spark/blob/4b5fc1da752ec008468ef80a5717c8beab468387/sql/core/src/main/scala/org/apache/spark/sql/execution/aggregate/ObjectHashAggregateExec.scala#L143-L149
Without that check the decision tree would be much simpler:

Are all agg buffers fixed with? Use HashAggregateExec
Is conf.useObjectHashAggregation enabled? Use ObjectHashAggregateExec
Use SortAggregateExec

From #15590 it seems, that ObjectHashAggregateExec is allways faster.

I was doing a little tests and I understand better what you mean, and yes it seems very interesting. Gentle ping to @liancheng too, if he could solve our doubt.

AFAIK it's for historical reasons. ObjectHashAggregateExec was created to speed up certain aggregate functions that use java objects as states, and we made a very conservative trigger condition for ObjectHashAggregateExec.
In general, I agree with what @tanelk said, but there is one issue that: ObjectHashAggregateExec is bad at memory estimation and may easily OOM. SortAggregateExec is more robust (but slower).

I think that's also why Spark prefers sort merge join over shuffle hash join. Robust is more important than performance.

Thanks for the clarification, I will close the PR because it don't make sense.


Is get_frames_per_point always giving 0?

When I run this example script and monitor 13SIM1:HDF1:NumCapture_RBV, it never changes from its initial value of 0. This remains true whether the 13SIM1:HDF1:FileWriteMode_RBV is set to Capture or Stream (as specified in det.hdf1.stage_sigs and verified by monitoring).
Thus, I have to override get_frames_per_point() to rely on det.cam.num_images (the desired number of images) rather than det.hdf1.num_capture, as shown in the highlighted lines of the example script.
I notice that we override get_frames_per_point in the same fashion in CSX's profile and in FXI's profile
Should we make the same change upstream? Am I misunderstanding or misremembering how the original was supposed to work?

I notice that for the TIFF plugin we already use num_images:
https://github.com/bluesky/ophyd/blob/c2c46f52d8b1dcd5aa92b66891bf8eb3277c5067/ophyd/areadetector/filestore_mixins.py#L496-L507
and likewise in the HDF5 plugin designed to be used in Single FileWriteMode.
https://github.com/bluesky/ophyd/blob/c2c46f52d8b1dcd5aa92b66891bf8eb3277c5067/ophyd/areadetector/filestore_mixins.py#L467-L483
The only exception is our main HDF5 plugin, used in Capture or Stream mode.
https://github.com/bluesky/ophyd/blob/c2c46f52d8b1dcd5aa92b66891bf8eb3277c5067/ophyd/areadetector/filestore_mixins.py#L449-L464

NumCapture_RBV seems to work correctly in our ADCore 3-9 based release:
tom:~ $ caput AD-SIM-01:HDF5:NumCapture 2
Old : AD-SIM-01:HDF5:NumCapture 0
New : AD-SIM-01:HDF5:NumCapture 2
tom:~ $ caget AD-SIM-01:HDF5:NumCapture_RBV
AD-SIM-01:HDF5:NumCapture_RBV 2

Thanks. I see the same behavior. Now I understand that the issue was our failure to interpret 0 as "unbounded". We need to special-case this in ophyd. Fix proposed in #934.


Duplicate Cert-manager & lets encrypt

Changes to get cert manager working in relenvs has resulted in it being broken in devenvs
Going to duplicate the code so that we have it working in both and then figure out at a later time the issues

No longer needed


Failed to load nodelet '/bfy/acquisition_node`

I got the error during multiple_nodelet_example.launch.
Also, I tried to remove and reinstall the Spinnaker SDK, however still failed.

version of SDK
spinnaker-<IP_ADDRESS>-amd64
spinnaker-<IP_ADDRESS>-amd64

ROS kinetic / Ubuntu 16.04

command as follows:
roslaunch spinnaker_sdk_camera_driver multiple_nodelet_example.launch

[ INFO] [1602591499.250114371]: Creating system instance...
[ INFO] [1602591501.202995571]: Retreiving list of cameras...
[ INFO] [1602591502.805533519]: Numer of cameras found: 4
[ INFO] [1602591502.805619562]:  Cameras connected: 4
[ INFO] [1602591502.805741337]:   -00B09D081526
[ INFO] [1602591502.805813729]:   -00B09DDCC7B1
[ INFO] [1602591502.805851774]:   -00B09DDCC831
[ INFO] [1602591502.805890077]:   -00B09DE71443
[ WARN] [1602591502.805935781]:    Camera 14469041 not detected!!!
[FATAL] [1602591502.805999965]: ASSERTION FAILED
file = /home/jeonghong/camera_ws/src/spinnaker_sdk_camera_driver/src/capture.cpp
line = 317
cond = cams.size()
message =
[FATAL] [1602591502.806045250]: None of the connected cameras are in the config list!
[FATAL] [1602591502.806077467]:
[FATAL] [1602591502.903676257]: Failed to load nodelet '/acquisition_nodeof typeacquisition/capture_nodeletto managervision_nodelet_manager'
[vision_nodelet_manager-1] process has died [pid 3013, exit code -5, cmd /opt/ros/kinetic/lib/nodelet/nodelet manager __name:=vision_nodelet_manager __log:=/home/jeonghong/.ros/log/6402d784-0d4d-11eb-9ce6-04d4c492f75b/vision_nodelet_manager-1.log].
log file: /home/jeonghong/.ros/log/6402d784-0d4d-11eb-9ce6-04d4c492f75b/vision_nodelet_manager-1*.log
[acquisition_node-2] process has died [pid 3014, exit code 255, cmd /opt/ros/kinetic/lib/nodelet/nodelet load acquisition/capture_nodelet vision_nodelet_manager __name:=acquisition_node __log:=/home/jeonghong/.ros/log/6402d784-0d4d-11eb-9ce6-04d4c492f75b/acquisition_node-2.log].
log file: /home/jeonghong/.ros/log/6402d784-0d4d-11eb-9ce6-04d4c492f75b/acquisition_node-2*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done
In params.yaml
cam_ids:

14469041
17306918
15144003
14469169
cam_aliases:
cam0
cam1
cam2
cam3
master_cam: 17306918
save_type: .bmp #binary or .tiff or .bmp
binning: 2 # going from 2 to 1 requires cameras to be unplugged and replugged
color: true

soft_framerate: 10 # this frame rate reflects to the software frame rate set using ros::rate
exposure_time: 0
skip: 5
#Camera info message details
distortion_model: plumb_bob
image_height: 1920
image_width: 1200
distortion_coeffs:

[-0.021141875266089592, -0.3733872931278025, 2.385982550579459, 3.2824571732099725]
[-0.06001035588294054, 0.3466585291091072, -1.0932356940133992, 3.4511959617065253]
[0.011193049778465896, -0.8232116346873426, 6.503615507139952, -14.83036814949066]
[-0.029536885609680173, -0.2907309008743365, 2.243852541947369, -3.5995010058526256]

#specified as [fx  0 cx 0 fy cy 0  0  1]
intrinsic_coeffs:

[1886.9232141485886, 0.0,<PHONE_NUMBER>709341, 0.0, 1886.6668765711668,<PHONE_NUMBER>4719823, 0.0, 0.0, 1.0]
[1872.1392958276606, 0.0,<PHONE_NUMBER>388025, 0.0, 1872.6168324818198,<PHONE_NUMBER>0530056, 0.0, 0.0, 1.0]
[1872.6246599679714, 0.0,<PHONE_NUMBER>82809, 0.0, 1873.4112078551445,<PHONE_NUMBER>50892, 0.0, 0.0, 1.0]
[1867.922201234431, 0.0,<PHONE_NUMBER>679519, 0.0, 1868.1730959576214,<PHONE_NUMBER>7501405, 0.0, 0.0, 1.0]

rectification_coeffs:

[1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000]
[1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000]
[1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000]
[1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000]

projection_coeffs:

[913.700317, 0.000000, 953.448302, 0.000000, 0.000000, 1063.296631, 777.871993, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]
[703.910323, 0.000000, 815.113302, 0.000000, 0.000000, 958.319231, 636.871993, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]
[913.700317, 0.000000, 953.448302, 0.000000, 0.000000, 911.742312, 811.121993, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]
[923.700443, 0.000000, 973.847232, 0.000000, 0.000000, 1100.763631, 832.341983, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]

Can you try the dev branch. We had fixed a bug with the cam ids.


check_mapping: consider .fields

When Logstash stores points, it creates a mapping where the .raw
is in the .fields. Currently, our mapping only looks in .properties.
Let's look in .fields too.
Also, let's ignore _default_ which isn't a real type.
Fixes https://github.com/juttle/juttle-elastic-adapter/issues/126
@VladVega @demmer

This looks good to me.


Python Example was using constraints to create variables

Cleaned up the python example that was using constraints to create variables and adding redundant variables to decision builder. The new code search tree and speed improved by more than a factor of 10.

I signed it!


Order-ID ist not present in generated invoice pdf when using the API

PHP Version
7.4.15
Shopware Version
<IP_ADDRESS>
Expected behaviour
If using the API to create an invoice, then the generated invoice pdf must have the given document number in the pdf.
{{endpoint}}/api/_action/order/<uuid>/document/invoice?fileType=pdf {     "config": {         "documentNumber": "1000"     } }
The relevant part of the PDF should be like this:

Actual behaviour
The orderId ist not present in the pdf.

How to reproduce

create an order
For this order create an invoice using the API-Endpoint {{endpoint}}/api/_action/order//document/invoice?fileType=pdf
Open the PDF and the orderid will not be present

As it's working in the Administration look into the API call of the Admin


Allow the player to automatize army movement

When you control a lot of provinces, and especially when auto-recruit is on, it's a lot of work having to move all of your armies one by one.
There should be a way to automatically move armies in any direction.
Here's my idea:
Create the code architecture

[x] Add new object in Country called AutoArrows, a list of AutoArrow
[x] Create AutoArrow class: has a source province and a destination province
[x] AutoArrows ignores any attempt to add a new AutoArrow that's a duplicate of an existing one
[x] AutoArrows listens to changes in all AutoArrow objects in the list. Whenever an arrow's information matches another one's, it deletes that arrow and its visuals
[x] Add new node in GameWorld2D called AutoArrowsNode2D, a list of AutoArrowNode2D
[x] Create AutoArrowNode2D class: contains an AutoArrow or, alternatively, can also take just a source province and a Vector2 destination

Draw the arrows on the world map

[x] AutoArrowNode draws an arrow using the information it has
[x] AutoArrowNode listens to changes in AutoArrow's provinces and updates the visuals accordingly
[x] Only show arrows when a province is selected (any province)
[x] Only show the playing country's arrows

Save the arrows between sessions

[x] Save the arrows for each Country
[x] Load the arrows for each Country

Add behavior

[x] At the end of a player's turn, the game goes through all of the country's arrows. For each arrow, checks if a controlled army is in the source province, and if so, creates and applies a new army movement action
[x] If more than one arrow points from the source province, splits the army evenly between each destination

Make the user able to add new arrows

[x] Have a new node that listens to mouse input for arrows
[x] When right click is pressed on a province, creates a new AutoArrowNode2D
[x] The AutoArrowNode2D points from the source province to the mouse cursor's position
[x] If the mouse cursor is on a valid destination, then the arrow snaps to the destination province
[x] If the right mouse button is released with a valid destination province, an AutoArrow is created and added to the Country's AutoArrows
[ ] Players can add and remove arrows at any time, but they can only add them to their own country
[ ] If there is more than one local player and it's none of them's turn to play, then only the "leader" can add and remove arrows

Make the user able to remove arrows

[x] When a new arrow is created by the user that matches an existing arrow, it deletes the existing arrow instead of creating a new arrow
[x] A double right click on a province deletes all arrows going from that province

Synchronize between clients

[ ] Sync the addition of an AutoArrow
[ ] Sync the removal of an AutoArrow
[ ] Non-server clients can only edit the AutoArrows of their locally controlled countries

Note: no need to sync changes in AutoArrow properties because they de facto never change. Arrows are only added and removed, never modified.

I want to mention that I created two related issues (#179 #180) to make auto-arrows even better.
I might implement them for 4.1, if there's still time before the deadline.


Add support for IDEA 2020.1

Esp. the script for binary compatibility check needs to be updated

And likely we want to change the default IntelliJ to build against 2020.1 as well


revisit Testicular regression syndrome  and 46,XY sex reversal 11 and management of other OMIM alternate names

When OMIM provides an alternate name for a disorder, when is that alternate name used to support an entry in Mondo distinct from the primary name in OMIM.
For the example of TRS/SRXY11, I see that Orphanet (https://www.orpha.net/consor/cgi-bin/OC_Exp.php?Expert=983) gives the gene as DHX37 for TRS, as OMIM does for SRX&11, so I am not certain these are considered distinct entities.

See also:  MONDO:0800195 and MONDO:0009279

@maglott it looks like we split these out a while back because Orphanet did not have a gene associated with their term, but it looks like this has changed. I think MONDO:8000015 '46,XY sex reversal 11' and MONDO:8000017 'testicular regression syndrome' should be merged.

See also: MONDO:0800195 and MONDO:0009279

'achalasia-alacrima syndrome' is an included entry in OMIM, so we split it out into a separate class. Included entries are intended to be distinct diseases.


Ctrl-C does not stop log4brains preview when run in Docker

Bug Report
Great project, thanks for your work! I am trying to run log4brains in Docker and I encounter the following. If I have time I will try to submit a PR fixing this, but for now I will submit the issue.
Description
Ctrl-C does not stop log4brains preview when run in Docker
Steps to Reproduce

Run 'log4brains preview' in Docker with the following command:

docker run --rm -ti -v $(pwd):/workdir -p 4004:4004 thomvaill/log4brains preview

Press ctrl-c
The container does not stop

Expected Behavior
In step 3, log4brains and the container should stop.
Context
You can stop the container by running docker ps and running docker stop <container id> but this is cumbersome.
Environment

Log4brains version: the version in Docker image (1.0.0-beta.11)
thomvaill/log4brains                                                                           latest                 7bb84c921b02   6 weeks ago     412MB
Node.js version: version in Docker image
OS and its version: version in Docker image
Browser information: Firefox

Possible Solution
I do not have a solution right now, but maybe playing with the Docker entrypoint / cmd can fix this.

@francoisvdv according to https://github.com/nodejs/docker-node/blob/main/docs/BestPractices.md#handling-kernel-signals

Node.js was not designed to run as PID 1 which leads to unexpected behaviour when running inside of Docker. For example, a Node.js process running as PID 1 will not respond to SIGINT (CTRL-C) and similar signals. As of Docker 1.13, you can use the --init flag to wrap your Node.js process with a lightweight init system that properly handles running as PID 1.
docker run -it --init node

You can also include Tini directly in your Dockerfile, ensuring your process is always started with an init wrapper.

Is this the right way to solve this?

I can confirm that adding --init to my docker run command does fix the CTRL-C issue for me!


Fix Cluster Scaling When Disk Metric Prioritized

This commit fixes a bug in the LeastAllocatedNode method that
results in an error when Replicator attempts to initiate a cluster
scale-in operation if the prioritized scaling metric is set to
ScalingMetricDisk.
Closes #240

Tagging original reporter of bug #240 @cloudeng


Notification about missing python test suite on non-python projects

Environment data

VS Code version:  1.51.1
Extension version: v2020.11.371526539
OS and version: macOS 10.15.7 (19H2) | Darwin x64 19.6.0
Python version: 3.8.5
Type of virtual environment used: venv
Value of the python.languageServer setting: Pylance

Expected behaviour
If I open a project that doesn't have any python file, I shouldn't be getting any annoying popup about pytest not being installed, as it's not relevant at all. Even for python project seems a bit annoying to get this toast notifications, but I believe this should be addressed at vs code level
Actual behaviour
Opening a project that doesn't have any python file results in a toast notification prompting to install pytest

Steps to reproduce:

Have the "python.testing.pytestEnabled": true setting
Open any non python project (or python projects without pytest installed)

Logs

Output for Python in the Output panel

Starting Pylance language server.
Python interpreter path: /usr/local/bin/python3
> /usr/local/bin/python3 ~/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/testing_tools/run_adapter.py discover pytest -- --rootdir ~/Projects/smth -s --cache-clear
cwd: ~/Projects/smth
> /usr/local/bin/python3 ~/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/testing_tools/run_adapter.py discover pytest -- --rootdir ~/Projects/smth -s --cache-clear
cwd: ~/Projects/smth
> conda --version
Error 2020-11-28 21:25:45: Failed to parse discovered Test r [Error]: Traceback (most recent call last):
  File "/Users/alexviscreanu/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/testing_tools/run_adapter.py", line 17, in <module>
    from testing_tools.adapter.__main__ import parse_args, main
  File "/Users/alexviscreanu/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/testing_tools/adapter/__main__.py", line 9, in <module>
    from . import pytest, report
  File "/Users/alexviscreanu/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/testing_tools/adapter/pytest/__init__.py", line 7, in <module>
    from ._discovery import discover
  File "/Users/alexviscreanu/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/testing_tools/adapter/pytest/_discovery.py", line 8, in <module>
    import pytest
ModuleNotFoundError: No module named 'pytest'

    at ChildProcess.<anonymous> (/Users/alexviscreanu/.vscode/extensions/ms-python.python-2020.11.371526539/out/client/extension.js:9:456869)
    at Object.onceWrapper (events.js:313:26)
    at ChildProcess.emit (events.js:223:5)
    at ChildProcess.EventEmitter.emit (domain.js:475:20)
    at maybeClose (internal/child_process.js:1021:16)
    at Socket.<anonymous> (internal/child_process.js:430:11)
    at Socket.emit (events.js:223:5)
    at Socket.EventEmitter.emit (domain.js:475:20)
    at Pipe.<anonymous> (net.js:664:12)
> /usr/local/bin/python3 ~/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/pyvsc-run-isolated.py -c "import pytest"

We are going to treat this as a feature request to have the settings that enable features be treated more like hints instead of a signal that you specifically want something to be turned on. We have marked this issue as "needs decision" to make sure we have a conversation about your idea. We plan to leave this feature request open for at least a month to see how many 👍 votes the opening comment gets to help us make our decision.
In the meantime, you can set python.testing.pytestEnabled at the workspace level instead of at the user setting level so that it isn't activated for workspaces that lack pytest files.

Hmm... alright
I assumed this was definitely not an expected behaviour, as I'd never expect such notifications on non-python projects
For now I'm using custom css to disable all popup notifications, as the situation of vscode and third party plugins that send annoying notifications is kind of out of control. I don't want to have vscode flashing notifications every time I open it just because the plugins don't want to be friendly with environments different from the ones they are configured for
Thanks!

Thanks for reporting this. It's happening for me as well and is incredibly annoying.

Thanks for bringing this up, would it help if we added a "do not show again" button in this notification?
FWIW the Python extension shouldn't be activating without a Python related file open, so if you are seeing this notification when you are not doing anything Python related, please let us know as it could be a different bug.

@luabud it does happen with projects without python at all, as I showed on the initial message of this issue. I didn't have any .py, .pyc nor .pyo` file and the message did pop up
and yep... personally a permanent dismiss button would be enough
tried again just to verify that still happens on the latest version and indeed... still there

@aexvir Can you share the list of installed extensions? We know now that some extensions that use python some times activate it even when there is no python file in the project. Just do a ls in ~/.vscode/extensions/ dir.

sure thing
there you go

Installed vscode extensions

alefragnani.project-manager-12.0.1
ardenivanov.svelte-intellisense-0.7.1
arrterian.nix-env-selector-1.0.6
batisteo.vscode-django-1.3.0
britesnow.vscode-toggle-quotes-0.3.4
bungcip.better-toml-0.3.2
byi8220.indented-block-highlighting-1.0.7
coenraads.bracket-pair-colorizer-2-0.2.0
connorshea.vscode-test-explorer-status-bar-1.1.2
dbaeumer.vscode-eslint-2.1.17
dbaeumer.vscode-eslint-2.1.19
dracula-theme.theme-dracula-2.22.3
eamodio.gitlens-11.3.0
eg2.vscode-npm-script-0.3.17
formulahendry.code-runner-0.11.3
foxundermoon.shell-format-7.0.1
github.vscode-pull-request-github-0.24.0
golang.go-0.23.2
hbenl.vscode-test-explorer-2.19.5
hbenl.vscode-test-explorer-2.19.6
ibm.output-colorizer-0.1.2
iocave.customize-ui-0.1.51
iocave.monkey-patch-0.1.12
ipedrazas.kubernetes-snippets-0.1.9
jakebecker.elixir-ls-0.6.5
jamesbirtles.svelte-vscode-0.9.3
keyring.lua-0.0.9
kisstkondoros.vscode-gutter-preview-0.27.1
kumar-harsh.graphql-for-vscode-1.15.3
littlefoxteam.vscode-python-test-adapter-0.6.6
littlefoxteam.vscode-python-test-adapter-0.6.7
lunuan.kubernetes-templates-1.1.2
me-dutour-mathieu.vscode-github-actions-3.0.1
mechatroner.rainbow-csv-1.8.1
michelemelluso.gitignore-1.0.1
mikestead.dotenv-1.0.1
mrmlnc.vscode-jade-snippets-1.0.1
ms-azuretools.vscode-docker-1.10.0
ms-azuretools.vscode-docker-1.11.0
ms-kubernetes-tools.vscode-kubernetes-tools-1.3.0
ms-python.python-2021.2.636928669
ms-python.python-2021.3.658691958
ms-python.vscode-pylance-2021.3.1
ms-python.vscode-pylance-2021.3.2
ms-toolsai.jupyter-2021.3.619093157
ms-vscode-remote.remote-containers-0.163.2
ms-vscode-remote.remote-wsl-0.54.3
ms-vscode-remote.remote-wsl-0.54.5
ms-vscode-remote.remote-wsl-0.54.6
ms-vscode.typescript-javascript-grammar-0.0.55
ms-vscode.vscode-typescript-tslint-plugin-1.3.3
ms-vsliveshare.vsliveshare-1.0.3968
msjsdiag.debugger-for-chrome-4.12.12
mtxr.sqltools-0.23.0
octref.vetur-0.33.1
pkief.material-icon-theme-4.5.0
pnp.polacode-0.3.4
quicktype.quicktype-12.0.46
rebornix.ruby-0.28.1
redhat.vscode-yaml-0.16.0
rescuetime.rescuetime-1.0.1
robbowen.synthwave-vscode-0.1.8
rust-lang.rust-0.7.8
shan.code-settings-sync-3.4.3
shd101wyy.markdown-preview-enhanced-0.5.16
sourcery.sourcery-0.8.8
spmeesseman.vscode-taskexplorer-2.0.7
streetsidesoftware.code-spell-checker-1.10.2
stylelint.vscode-stylelint-0.86.0
sysoev.language-stylus-1.11.0
tyriar.sort-lines-1.9.0
visualstudioexptteam.vscodeintellicode-1.2.11
visualstudioexptteam.vscodeintellicode-1.2.12
wakatime.vscode-wakatime-5.0.1
whizkydee.material-palenight-theme-2.0.1
wholroyd.jinja-0.0.8
wingrunr21.vscode-ruby-0.28.0
wyattferguson.jinja2-snippet-kit-2.0.0
xabikos.javascriptsnippets-1.8.0
zhuangtongfa.material-theme-3.9.15
zignd.html-css-class-completion-1.20.0

Looks like this is caused by https://github.com/microsoft/vscode-jupyter/issues/5193

Oh, nice catch, thanks for linking it 🙂
although this will still mean popping up this notification when opening any python project... so the suggestion for only showing it once still sounds reasonable to me
will there be a follow up issue to this one for adding the "do not show again" button then?
or this isn't something that you want to change?

@aexvir I created #15729 to track that request.


Add webcam streaming

Use vlc to stream from /dev/video0 to rtmp://localhost/live/webcam and use ffmpeg-webcam.service to save local chunks.

Per internal communication, webcams are only available for access when the Virtual Machine's USB Controller is xHCI (USB 3.0) instead of the default OHCI (USB 2.0). I have set the development VM's USB Controller to xHCI. Great find!

We will use udevadm (from udev package already installed in Ubuntu 22.04) to listen for webcam-related events.

For audio streaming, we will have a configurable AUDIO_DEVICE_NAME in config.sh. When webcam streaming starts, it will search for a hardware audio capture device (/proc/asound/card*/pcm*c) and select the first one whose name matches AUDIO_DEVICE_NAME. Options for the system default device and the first hardware device are also available via AUDIO_DEVICE_NAME=system and AUDIO_DEVICE_NAME=any, respectively.
For ease of configuration, the list_audio_devices and set_audio_device commands are also made available in the vnoiconf.sh script. The VLC instance responsible for webcam streaming is automatically restarted after set_audio_device is used.


Promises#all(CompletionStage<? extends T>...) cancellation does not seem to work correctly

The documentation about Promises#all(CompletionStage<? extends T>...) suggests that canceling a Promise that has been created using Promises#all cancels all Promisses that are wrapped inside. That does not seem to work. Please have a look into
CompletableTaskCancellationTest.java.txt methods testWrappedCancel*. (Executors#getDefaultExecutor() returns
new ThreadPoolTaskExecutor(10, 20, 30, TimeUnit.SECONDS, new LinkedBlockingQueue<>(30))).

Hello,
I haven't tested your code, but the issue seems to be related to poorly documented Promise.dependent() operator rather than to Promises.all() behavior. You should either use Promise.dependent(PromiseOrigin.ALL) or add true as a last parameter to thenAccept(...) - i.e. use overloaded form.
So your code should be either:
    @Test
    public void testWrappedCancelEarly() throws Exception {
        ElapsedTime time = new ElapsedTime();
        Promise<Void> promise0 = CompletableTask.runAsync(taskOf(time, 2000, 0), Executors.getDefaultExecutor());
        Promise<Void> promise1 = CompletableTask.runAsync(taskOf(time, 2000, 1), Executors.getDefaultExecutor());
        Promise<Void> promise2 = CompletableTask.runAsync(taskOf(time, 2000, 2), Executors.getDefaultExecutor());
        Promise<Void> dependentPromise0 = promise0.dependent(PromiseOrigin.ALL).thenAccept(secondStep(time, 1000, 0)); // Use PromiseOrigin.ALL
        Promise<Void> dependentPromise1 = promise1.dependent(PromiseOrigin.ALL).thenAccept(secondStep(time, 1000, 1)); // Use PromiseOrigin.ALL
        Promise<Void> dependentPromise2 = promise2.dependent(PromiseOrigin.ALL).thenAccept(secondStep(time, 1000, 2)); // Use PromiseOrigin.ALL
        Promise<List<Void>> combinedPromise = Promises.all(dependentPromise0, dependentPromise1, ...)
        ...
   }

...or...
    @Test
    public void testWrappedCancelEarly() throws Exception {
        ElapsedTime time = new ElapsedTime();
        Promise<Void> promise0 = CompletableTask.runAsync(taskOf(time, 2000, 0), Executors.getDefaultExecutor());
        Promise<Void> promise1 = CompletableTask.runAsync(taskOf(time, 2000, 1), Executors.getDefaultExecutor());
        Promise<Void> promise2 = CompletableTask.runAsync(taskOf(time, 2000, 2), Executors.getDefaultExecutor());
        Promise<Void> dependentPromise0 = promise0.dependent().thenAccept(secondStep(time, 1000, 0), true); // Overloaded operator with true
        Promise<Void> dependentPromise1 = promise1.dependent().thenAccept(secondStep(time, 1000, 1), true); // Overloaded operator with true
        Promise<Void> dependentPromise2 = promise2.dependent().thenAccept(secondStep(time, 1000, 2), true); // Overloaded operator with true
        Promise<List<Void>> combinedPromise = Promises.all(dependentPromise0, dependentPromise1, ...)
        ...
   }

Thank you for the quick response. The supposed solutions work fine.

Hi there,
the tests now work very well but unfortunately a real life example does not work. Please have a look onto another test method:
reallife.txt
The sleep(30000); at the end keeps the programm running. So you can see (on System.out) the threads are still running in background allthough the combinedPromise has been canceled after 4s. Maybe interrupting the threads does not work as expected?

This is expected while your code inside id -> CompletableTask.runAsync(() -> {}) does not react on interruptions.
Please add the following to preVisitDirectory and visitFile:
if (Thread.currentThread().isInterrupted()) {
  return FileVisitResult.TERMINATE;
}

Thank you, that does the trick. I supposed that Files#walkFileTree does those checks. But maybe it is better to add the check outside.


BUGFIX: NodeDataRepository maps NodeType to string for php 8 compatibility

This is a fix for issue #12 . The problem described there is not related to NEOS 7.3 but php 8.x because php 8 enforces strict types. Doctrine's Expr::quoteLiteral() then needs a string, and not a NodeType with a __toString() to work properly.

@daniellienert Could you please have a look and merge this PR? This package currently doesn't work with NEOS 8 because of the mentioned php 8 incompatibility.


Update: Sign in with Tezos

Hi dev team,
I would like to inform you that the current version of SIWT has been overhauled and is now further developed in a new mono repository under the old repo name. The version you are using is still available under SIWT-Deprecated.
Here you can find the link to the Agora article. We have added support for Discord verification which you can test right away in our StakeNow Discord!
Best regards
Carlo

Thanks for the pro-active outreach @jdsika, happy to see further progress on SIWT. Will keep a close eye to transition to the new implementation when its ready.


Modularizes Queryable and SparqlQueryable interfaces

EDIT: I should premise that this PR builds on the feature/query branch, for which there is already an open PR at https://github.com/rdfjs/types/pull/30 .
This PR was inspired by @tpluscode's feedback as discussed on Gitter.im.  The goal is to break down Queryable and SparqlQueryable into simpler, more modular interfaces that can be combined without loss in expressivity. I've opted to break them down based on query type (string vs. Algebra).
Example of what becomes possible with this PR:
import {
  StringSparqlQueryable,
  AlgebraSparqlQueryable,
  StringQueryable,
  AlgebraQueryable,
  BindingsResultSupport,
  QuadsResultSupport,
  QuerySourceContext,
  QueryStringContext,
  QueryAlgebraContext,
 } from './query/queryable';

interface SourceType {
  answer: 42;
}

type EngineType = StringSparqlQueryable<
  QuadsResultSupport & BindingsResultSupport,
  QueryStringContext & QueryAlgebraContext & QuerySourceContext<SourceType>,
> & AlgebraSparqlQueryable<
  QuadsResultSupport & BindingsResultSupport,
  QueryAlgebraContext & QuerySourceContext<SourceType>,
>;

const query = await ({} as EngineType).queryBindings({}, { sources: [{ answer: 42 }] });

@rubensworks I did a small amount of manual testing to verify whether methods get correctly overloaded across interfaces but this could definitely do with more testing. Might be a good starting point for actual type tests, as per @tpluscode's  comment in the other PR. I was waiting for preliminary feedback before committing further effort.

Might be a good starting point for actual type tests, as per @tpluscode's comment in the other PR. I was waiting for preliminary feedback before committing further effort.

Yep, I'm already working on those as we speak in #30


Enterprise usecase

Hi,
Just gave your project a testdrive through #23 which is obviously quite easy to setup.
While your password manager looks nice and seems well built in terms of security, it lacks some features that would made it outstanding:

Possibility to create new application types
Folders (or customers) that can be shared with teams as RO / RW, so every new entry in a folder is shared by default
password history
Session timeouts depending on accessing IP address (so one gets 30 days session at work and 30 min sessions at a customers place)
File storage in applications (sometimes you need to share a big CSV with hundreds of passwords for migrations... You won't create an application per entry for those use cases)
Import / Export (no password manager can be seen as a valuable option if it doesn't allow to export it's data)
Android / IOS app (actually an app that just wraps your frontend for easy access)

I've tested multiple other solutions and none provided a certificate for authentication. Nice one, really appreciable.
Thanks for developping your solution. Might become a great contender to Bitwarden, Psono, sysPass and others.
Wish you well.

Thanks for your ideas :)
Some are not easy, but password export is a must in any password manager, I will do it ASAP. Anyway, you will allowed to export only accesible passwords to admin, but not not shared (private) users passwords. Also export will be available encrypted with custom password.
Thanks!

Another "enterprise" feature would be a LDAP/AD integration. I was able to implement an OpenLDAP integration for our LDAP structure (see the branch "Add_ldap" in my fork). However, I'm not sure how stable/well implemented this integration is.

Maybe LDAP integration can be done using the API instead adding new features to core. Check this endpoints https://github.com/eusonlito/Password-Manager/issues/9#issuecomment-1077356504

@deajan Added Export Feature (Profile > Export).

@eusonlito Nice ;)

@eusonlito : Unfortunately, I cant use the provided API endpoints for the LDAP Integration. You need some kind of mechanism for the synchronization of thr user credentials.

@h3nr1-g but, what's the problem with API endpoints? This allow a customizable users sync for any integration.

Yes, you are right. With the API end points I can sync the users (at least I can create local copies). However, i have no possibilty to sync the User passwords since they are stored encrypted in the LDAP server. As a result, the copied users can Not be authenticated.
Another drawback of this approach is that everytime an User changes His Password, you need to run this sync process.

Ok, let me some time to check the LDAP AUTH.


render a message template throws MissingElementException

This is a (multiple allowed):

[x] bug

[ ] enhancement

[ ] feature-discussion (RFC)

BootstrapUI Version: latest

Bootstrap Framework Version: 3.3.5

jQuery: 1.11.3

What you did
<?php echo $this->Flash->render('auth', ["element" => "error"]); ?>
I just wanted to make my auth flash messages looks like Flash->error() messages.

Just use <?= $this->Flash->render('auth'); ?>.  The FlashHelper provided in this plugin will automatically show the error message in red using the default flash template.

Flash->error() returns:

<button type="button" class="close" data-dismiss="alert" aria-label="Close">×</button> ...

but Flash->render('auth') returns:

 ...

and there is no rule in css for showing this in red. what am i doing wrong?

Check https://github.com/cakephp/cakephp/issues/9614 on how to load the AuthComponent to also use the same error template as the other error flash messages.
In 3.4 you can then remove this part :)


Potential issue with NIP-05 route

Describe the bug
Users added to the registered table are not able to validate their NIP-05 address at the server domain.
To Reproduce
Steps to reproduce the behavior:

Add a user to the registered table
Attempt to visit /.well-known/nostr.json?name=
Receive an error about not being able to load /api/v2/nostraddress

Expected behavior
A JSON object containing the user's name and npub should be returned:
i.e.
https://sove.rent/.well-known/nostr.json?name=thesamecat

output:
{"names":{"thesamecat":"72f9755501e1a4464f7277d86120f67e7f7ec3a84ef6813cc7606bf5e0870ff3"}}

Desktop (please complete the following information):

OS: macOS Sonoma
Browser: Thorium, Gossip, Damus
Version: current (all)

Smartphone (please complete the following information):

Device: iPhone 15 Pro Max, iMac
OS: iOS 17.1, macOS Sonoma
Browser: Damus
Version: TestFlight

Additional context
I was able to temporarily fix this by adding:
        if (version == "v2"){
                app.get("/api/v2/nostraddress", Checknostraddress);
        }

to src/routes/nostraddress.route.ts

Thank you very much for opening the issue @TheSameCat2, solved here:
https://github.com/quentintaranpino/nostrcheck-api-ts/commit/e4cfa6608962857ded5c6c980da055ae66eb4349

Will update later today. Thanks @quentintaranpino


error C2039: "back_inserter" is not a member of "std"

Describe the bug
When I try to compile EventBus.cpp it throws: error C2039: "back_inserter" is not a member of "std"
To Reproduce
Compile EventBus.cpp
Expected behavior
EventBus compiles succesfully
Build:

compiler: MSVC x64
Version 3.0.0
Link type buildin
Flags: /MDd /Zi /Ob0 /Od /RTC1 /Za

Additional context
IntellISense suggest to #include <iterator> which seemingly solves the problem.

I provided a possible solution to this issue in #42


can not create Oauth2.0 plugin on a consumer?

NOTE: GitHub issues are reserved for bug reports only. For anything else,
please join the conversation in Kong Nation https://discuss.konghq.com/.
Please read the CONTRIBUTING.md guidelines to learn on which channels you can
seek for help and ask general questions:
https://github.com/Kong/kong/blob/master/CONTRIBUTING.md#where-to-seek-for-help
Summary
SUMMARY_GOES_HERE
Steps To Reproduce

Additional Details & Logs

Kong version  0.14.1
Kong debug-level startup logs ($ kong start --vv)
Kong error logs (<KONG_PREFIX>/logs/error.log)
Kong configuration (the output of a GET request to Kong's Admin port - see
https://docs.konghq.com/latest/admin-api/#retrieve-node-information)
Operating system

We appreciate you took the time to open an issue for this. However, kong github issues are for bug reports only. I'd like to ask you to post this on the Kong Nation forum
That said; authentication plugins cannot be added to consumers. Since we'd need the auth to run to identify the consumer. Catch 22 there.


fix failing test mri-utf8.test

The test seems to be only failing on our build machines. Figure out what is causing it and fix it.

duplicate of #47


will not load on mobile iOS, Obsidian version 1.1

Howdy - there's been an ongoing thread for this in #110 if you want to subscribe to updates or throw extra details in there.

Please download the latest update and try again.


Issue when using "bootstrap-vcpkg.bat" (Validating signature but not installing packages)

I tried following the instructions in the README file but, instead of installing the packages, it seems to validate the signatures and then just give me a telemetry report.
Below is what I'm seeing in Powershell (run as administrator):
`
PS C:\DEV> git clone https://github.com/microsoft/vcpkg
Cloning into 'vcpkg'...
remote: Enumerating objects: 126618, done.
remote: Counting objects: 100% (142/142), done.
remote: Compressing objects: 100% (61/61), done.
remote: Total 126618 (delta 100), reused 93 (delta 81), pack-reused 126476 eceiving objects: 100% (126618/126618), 34.30Receiving objects: 100% (126618/126618), 41.43 MiB | 17.51 MiB/s, done.
Resolving deltas: 100% (78576/78576), done.
Updating files: 100% (8210/8210), done.
PS C:\DEV> .\vcpkg\bootstrap-vcpkg.bat
Downloading https://github.com/microsoft/vcpkg-tool/releases/download/2021-09-10/vcpkg.exe -> C:\DEV\vcpkg\vcpkg.exe... done.
Validating signature... done.
Telemetry
vcpkg collects usage data in order to help us improve your experience.
The data collected by Microsoft is anonymous.
You can opt-out of telemetry by re-running the bootstrap-vcpkg script with -disableMetrics,
passing --disable-metrics to vcpkg on the command line,
or by setting the VCPKG_DISABLE_METRICS environment variable.
Read more about vcpkg telemetry at docs/about/privacy.md
PS C:\DEV>`
Any idea what the issue might be or how to resolve it?

I don't see a single error. What is your issue?

@jaygitdev, please reopen this issue if it still be a question for you.


Linux WebXR: do not include libexpat

Fixes https://github.com/webmixedreality/exokit/issues/147.
The bug addressed here is that the Linux Skia build included a copy of libexpat, which was not the same version as the libexpat in various graphics drivers, causing xml parsing crashes without an LD_PRELOAD.
I think this is the last of the changes needed for Exokit to work on Arch Linux, provided the deps are installed.

With this change I was able to run the Three.js WebVR demos without any LD_PRELOAD's.


New board: SP Racing H7 Extreme

SP Racing H7 EXTREME
Greetings PX4 community. Here is my pull request for a new board SP Racing H7 EXTREME.
The owner of the board is Dominic Clifton, the person behind Cleanflight. I think he will be greater reinforcement in the PX4 community. Please welcome him :)
More about the board here: http://seriouslypro.com/spracingh7extreme (don't rush to buy it, the FLASH is a bit different, contact Dominic first)
What is new and why took me so long to port PX4 to it?

the original board use W25N01G FLASH, that doesn't support memory-mapped mode
we change it with W25Q128 and now code is running from external FLASH over QSPI protocol
the board also using external FLASH for storing PX4 configuration
code is capable to switch between memory-mapped mode to indirect mode to write configuration
all board depended on code is in "board/SPRacing/h7extreme" folder
there is a small number of changes in "flashfs.c" to enable external FLASH as storage for config
a lot of time-critical code is moved into ITCM or RAM using linker script (check script.ld)

Board has a capability of 10 DShots but now it is limited to 8 DShot outputs and all of them work!
This is a very powerful board that waits to be unlocked.
Things that hardware support but still need to be worked on:

2 synchronized gyros (now it use only one)
MCU speed at 480 MHz (now is at 400 MHz)
10 DShot outputs
OSD enabled

Short flight log:
https://review.px4.io/plot_app?log=a0e90555-5c41-49f1-b042-cbe11c9e7c0d
Interview with Dominic about the board:
https://www.youtube.com/watch?v=feyDb8ktpZ0
If you are interested in board contact Dominic for more details.
https://shop.seriouslypro.com/contact/ (don't forget mention you are looking for PX4 version)
PX4 version will be compatible with betaflight also :)

Cool, I was actually just thinking about this board (and the dual IMUs) the other day.

Super cool, welcome!

Hi everyone, Dominic Clifton here, the designer of the board.
I'm super excited by the work done by @Igor-Misic and it's been great seeing the progress and working with him to get it to this point.
I've made the PX4 Edition available on the SP Racing shop, here:
https://shop.seriouslypro.com/sp-racing-h7-extreme
Make sure to select 'PX4 Edition' when ordering, as below.

As noted, the PX4 edition can also run Betaflight, and the code for it is here:
https://github.com/spracing/betaflight/tree/spracingh7extreme-with-w25q128jvem
The PX4 edition boards will ship when a few things in this PR are finalized and when the bootloader that is required for BF and PX4 dual use is also finalized.  The more people that order it the sooner it'll ship!

There are some minor things with comments, copyright year, etc, but because the vast majority of this is contained with boards/ it's pretty safe to merge.
Can you revert the submodule changes?

There are some minor things with comments, copyright year, etc, but because the vast majority of this is contained with boards/ it's pretty safe to merge.
Can you revert the submodule changes?

There are some minor things with comments, copyright year, etc, but because the vast majority of this is contained with boards/ it's pretty safe to merge.
Can you revert the submodule changes?

This is fixed.

Could you help move W25Q128 driver to a public dictionary, I think other boards like Kakute F7 mini could also use that. Thanks! #14995

Could you help move W25Q128 driver to a public dictionary, I think other boards like Kakute F7 mini could also use that. Thanks! #14995

Getting it into upstream NuttX (https://github.com/apache/incubator-nuttx) would be the ideal solution. If anyone else needs it short term we can find a more appropriate home in the PX4 tree (platforms/nuttx).

@dagar I saw nuttx already have something like this.
https://github.com/apache/incubator-nuttx/blob/master/drivers/mtd/w25.c

Could you help move W25Q128 driver to a public dictionary, I think other boards like Kakute F7 mini could also use that. Thanks! #14995
This driver will not be helpful for your board because they are adopted to use the QSPI protocol from RAM. There are already drivers in Nuttx that you can use for your purpose. I also have in plan to switch this part to Nuttx code, when we switch Nuttx to a version that supports QSPI for H7 MCUs.

An update for people following progress here.
Rather than update the SP Racing bootloader to support PX4 I've gone the route of making a second stage bootloader which can be used to launch memory mapped code on supported flash chips.
The code for this approach is here:
https://github.com/spracing/ssbl
The boot process is thus:
MCU reset
MCU boot option registers (Flash default)
SP Racing boot loader in MCU Flash loads EXST firmware from external flash.
Second Stage Boot Loader (SSBL) runs from RAM.
SSBL checks for supported flash chip, enables QSPI memory mapped mode and launches PX4 from external flash and all RAM used by SPRacing Bootloader and SSBL is available for use again.
The same SSBL, with modifications as required, could also be used for Ardupilot, iNAV or other firmware which is too large to run from the 448K of RAM used for the EXST firmware system.
However currently it doesn't work with the PX4 binaries @Igor-Misic provided me for testing which requires some investigation as it segfaults.  It does quite happily actually run the code from memory mapped QSPI flash so the proof-of-concept appears sound, as you can step though the disassembly in a debugger.
Here you can see the PX4 startup code disassembly and Vector Table in the memory view.

Horay, fixed!
https://github.com/spracing/ssbl/commit/f5a226cbca5044a55e3da4686be42877be19bc0b
The second stage bootloader now boots PX4.

I'll merge this now and get it into the builds so we can continue working incrementally. Great work so far!

Can we have PR for docs page? http://docs.px4.io/master/en/flight_controller/autopilot_manufacturer_supported.html

Documentation and binaries for the SSBL published.
Documentation:
https://github.com/spracing/ssbl/blob/master/README.md
Binaries:
https://github.com/spracing/ssbl/releases/tag/v1.0.0
Please raise issues or PR's on the SSBL issue tracker as appropriate.

Can we have PR for docs page? http://docs.px4.io/master/en/flight_controller/autopilot_manufacturer_supported.html

Done
https://github.com/PX4/px4_user_guide/pull/780

@jinger26 @hamishwillee any actions required here?

@mrpollo  Not sure yet, but any docs issues I'll follow up in https://github.com/PX4/px4_user_guide/pull/780 :-)

If anyone is interested here is one footage of board in acro mode.
I used the Generic 250 Racer airframe with P/R/Y rates at 1000/1000/800.
Unfortunately, I was not able to try to tune it more since I crashed pretty bad at the end of the video (still not sure what happened but probably is faulty ESC).
Log: link to log
Video: link to video
Setup:

@Igor-Misic yeah, feels like ESC juat gave up at the punch-out at the end of the video.  Would be interesting to know more.

@Yoke365 It's pre-installed on the FC.

@Yoke365 It's pre-installed on the FC.

Can we have PR for docs page? http://docs.px4.io/master/en/flight_controller/autopilot_manufacturer_supported.html

Done
PX4/px4_user_guide#780

Does this board provide a schematic diagram？

@Igor-Misic / @hydra
I'm having an issue with needing to use the SD Card. I need to add an extras.txt file to start the "external" (internal bus) mag, lis3mdl. I need to issue a lis3mdl start -I as well as a rgbled_ncp5623c start -I. However, the second has yet to work for me. My GPS module has an RGB LED, but doesn't want to light up. I confident the i2c connection is sound because I see the lis3mdl on the board.
The problem I have is that SSBL hangs when the card is inserted.  Why would this be? Thanks.

SD works fine for me.
Are you sure the problem is with SSBL? Can you try with empty SD?
Also, you can connect the UART debugger (Nuttx console)? maybe PX4 has a problem to start with your SD card.
It is on UART8 speed 57600.

I took an SD card from a Cube Pilot. I used the SD card formatting app. I inserted the card and applied power. The red light is solid, and the board doesn't appear as a USB device. If I remove the SD card, she boots as expected.

Can you connect UART8 over USB to Serial adapter?
Wiring:

You should get information output like this:

I'll try. I just so happened to have knock that connector off the board. I haven't pulled the board yet, but hopefully I can reflow the connector.


Add ci_cortexm and ci_riscv ECR repos

Cleanup after a flurry of new CI images. Also added https://github.com/apache/tvm/pull/12551 to capture this process.
@konturn @driazati

NOTE: I created ci_riscv ECR repo manually this morning; i think we need to rm it before applying this PR.

Can you rebase on 71b059493f78376af6bd9a6ddeb720f8aaeeeff2? The PR diff looks a little odd

done

superseded


Depency using git ssh URL

I enjoy using Zigmod, but I have spent hours and hours today trying to fix build errors, until it dawned on me that perhaps using git ssh URLs would cause errors with Zig build.
I used these dependency URLs:
root_dependencies:
 - src: git git@github.com:jacmoe/zixelator.git
 - src: git git@github.com:jacmoe/zallegro.git

And Zigmod created  .zigmod/deps/git/git@jacmoe.github.com:jacmoe/...
Since I want to develop those deps myself, I went into the deps folders and worked on my Zig projects. But I got weird errors when trying to integrate with a C library ...  I was about to throw in the towel, but decided to simply copy the module I was working on into my home directory, and everything worked! :scream: :smiley_cat:
So, I changed the funny path to git_at_jacmoe.github.com_colon_jacmoe , and it worked as well.
I want to use SSH instead of HTTPS because I am developing the modules at the moment, and it's very convenient to be able to just commit directly in the repositories.
Maybe Zigmod could handle this?

I want to use SSH instead of HTTPS because I am developing the modules at the moment, and it's very convenient to be able to just commit directly in the repositories.

I use https for all my urls and use this same workflow. what error do you run into?

That Zig build doesn't know where memory.h is, or similar odd errors. I think the issue is that Zig passes the full path, with the @ and the : character, to LLVM/clang, and confusion happens, maybe. Moving out of that path made all the odd errors vanish.
I could use https, but I prefer ssh.

Adding a remote, origin_ssh, using SSH, and setting it to be the default for push, works!
And Zigmod can still use the original https origin when fetching.
So, I guess I can have my cake, and eat it too :smile:
I will close this issue because I guess people are not generally giving Zigmod ssh git urls. But, if they do, they can find the work-around here.