Proposal for renderer / viewport improvements

Overview of issues
There are currently a few issues related to how we currently deal with viewports and overlays.

It currently prevents using the values in the depth buffer.

Details and some experiments: #491
An earlier discussion: #320
Another related discussion: #318
This also affects post-processing that needs the depth buffer, like fog: #72

When rendering to a viewport, code that uses events may need to offset mouse positions for viewport rect

E.g. in controllers #490
Probably the Gizmo too?

Subplots must share renderer props like blend_mode. Users may be forced to use multiple widgets/canvases.

Proposal
This is a proposal that I think fixes these issues.

  ┌───────────────────────────────────────────┐
  │                         Canvas            │
  │ ┌───────────────┐                         │
  │ │  Renderer     │                         │
  │ │               │                         │
  │ │               │                         │
  │ │               │                         │
  │ │               │        ┌───────────┐    │
  │ └───────────────┘        │  Renderer │    │
  │                          │           │    │
  │                          │           │    │
  │                          │           │    │
  │                          │           │    │
  │                          └───────────┘    │
  │                                           │
  └───────────────────────────────────────────┘

We drop the viewport class.
A renderer can render to a specific region of the canvas.
The renderer offsets event coordinates, so that everything is relative to the renderers rect. (We can still expose the canvas coords if that's useful.)
The renderer keeps its own internal render textures, (which may be smaller than the canvas).
We introduce rendeer.render_overlay() that allows rendering stuff like fps counters, gizmo's, axis ticks, labels, etc. This overlay pass does not clear the depth buffer.
The renderer gets an API to add post-processing steps. When the renderer flushes its color buffer to the canvas, these steps are applied in the same shader (the flush render pass). (This step is less important and can be implemented later.)
We may also add the ability for an overlay pass to the total canvas. (May not be needed; let's look at this later.)

This should make that each renderer has a depth buffer that is "intact" and can be sampled by the user. In the flush step, the depth can also be made available. I guess you could still render with the same renderer multiple times for specific use-cases, but then the depth buffer contains the values of the last pass.
The ability to render an overlay can also be achieved by creating an extra renderer that targets the same region on the canvas. But the memory consumption for an approach like that would be substantial, so we probably don't want to promote that as the standard solution. In most cases, "stuff drawn on top" does not need a depth buffer, or can do with just a few bits (we could e.g. move content close to the near plane, or move the far plane further out).
Use cases
Also some use-cases that we should support, let's make sure to have a working example of each (some or already covered):

An fps counter.
An AxesHelper in a corner of the screen.
The transform Gizmo.
A plot layout, showing multiple subplots with axii, ticks and labels. Can be a mock-up, just to show the idea for downstream plotting libs.
... anything else?

Ref #392

Good to have a holistic overview and proposal for these issues! I agree with most of your proposal, but there are some alternative approaches for some of the sub-problems that I would like you to consider as well.

We drop the viewport class.
A renderer can render to a specific region of the canvas.
The renderer offsets event coordinates, so that everything is relative to the renderers rect. (We can still expose the canvas coords if that's useful.)
The renderer keeps its own internal render textures, (which may be smaller than the canvas).

Great, I think it's better for pygfx to restrict itself to rendering to a target canvas. The fact that we can optionally render to a subregion of that canvas, doesn't require another abstraction. The viewport class drives up complexity for users and for ourselves, mostly for the sake of abstraction.

We introduce rendeer.render_overlay() that allows rendering stuff like fps counters, gizmo's, axis ticks, labels, etc. This overlay pass does not clear the depth buffer.

Here's where I'm not sure I agree. This is not really necessary, and isn't very flexible. Looking at the three.js example for their transform gizmo, you can see how they're providing an API that doesn't require the user to make any special calls to the renderer. In particular these lines of code make it possible:

https://github.com/mrdoob/three.js/blob/47b28bc564b438bf2b80d6e5baf90235292fcbd7/examples/jsm/controls/TransformControls.js#L777-L791
https://github.com/mrdoob/three.js/blob/47b28bc564b438bf2b80d6e5baf90235292fcbd7/examples/jsm/controls/TransformControls.js#L1104

All three.js Materials support the depthTest and depthWrite booleans. Combined with the renderOrder property on Object3D you can get the desired visual result and render things on top of the scene, without affecting the depth buffer.
This seems a whole lot more flexible, and does not introduce any new abstractions. Not introducing new abstractions is a really big plus.

The renderer gets an API to add post-processing steps. When the renderer flushes its color buffer to the canvas, these steps are applied in the same shader (the flush render pass). (This step is less important and can be implemented later.)

I hope this will inspire you: https://threejs.org/docs/index.html#manual/en/introduction/How-to-use-post-processing
Indeed it is less important for now.

We may also add the ability for an overlay pass to the total canvas. (May not be needed; let's look at this later.)

I think this would just add more complexity again and I feel that we don't really need it.

All three.js Materials support the depthTest and depthWrite booleans. Combined with the renderOrder property on Object3D you can get the desired visual result and render things on top of the scene, without affecting the depth buffer.

That makes a lot of sense!
I added a list of use-cases in the top post. Feel free to add more.

This looks great! Would the overlay allow events from world objects that have alpha values less than 1?

A plot layout, showing multiple subplots with axii, ticks and labels. Can be a mock-up, just to show the idea for downstream plotting libs.

This sounds exciting!
I see the overlay also being potentially useful for selectors that we've been making recently (btw the recent cameras and controllers refactor helped make this easier, thanks!)
https://github.com/kushalkolar/fastplotlib/pull/168
https://github.com/kushalkolar/fastplotlib/pull/164

Would the overlay allow events from world objects that have alpha values less than 1?

I take it that being able to pick semitransparent objects is still on your wish-list? Backref to earlier discussion #474. I think making that work might be easier in the overlay pass.

I take it that being able to pick semitransparent objects is still on your wish-list? Backref to earlier discussion #474. I think making that work might be easier in the overlay pass.

If it's not a lot of work that would be nicer than iterating through everything under events to look for selectors. Not a high priority for us right now but I thought I'd ask :)

Would it be possible to create resize handlers in the corners of the renderer's view?

Would it be possible to create resize handlers in the corners of the renderer's view?

We could, but it might also be that it makes more sense to implement this on a higher level, e.g. Fastplotlib's abstraction of it.

Reading through this again. One thing to keep in mind is that any objects that are drawn as an overlay (by setting depth_test to false), cannot have complex shapes, because of the lack of depth testing. I just tried, and this works fine for the gizmo. I suppose this holds for most 2D (flat) stuff that one would draw on-top of a visualization. If someone want to do something more fancy (e.g. a fancy 3D rotating logo in the corner) another renderer is simply needed.

Why what? :)

If someone want to do something more fancy (e.g. a fancy 3D rotating logo in the corner) another renderer is simply needed.

Why? I don't understand:)

I mean that if someone wants to render an overlay that requires depth-testing to render correctly.

The plan for #495 is slowly taking shape, and this issue is strongly related. The new plan (to support subplots) is that the renderer becomes simpler and lower-level, and the viewport will play a role in interactions / events. I also updated the top post.

In the below figure, we have a figure/canvas with two subplots. With the new proposal, the subplots will be represented by viewports, each with their own renderer. This means each can have a different pixel ratio, blend mode, post-processing, etc. There is also a viewport+renderer for the full canvas, to draw overlay stuff, like titles, ticks, widgets, colorbars.
The renderer for the overlay does not need textures for picking and depth (only for color). And since the area of the subplots is a fraction of the total canvas, the total memory needed for render textures is likely smaller than in the current situation.
┌────────────────────────────────────┐
│               Canvas               │
│ ┌───────────────┐   ┌───────────┐  │
│ │               │   │           │  │
│ │               │   │           │  │
│ │               │   │           │  │
│ │               │   │           │  │
│ │               │   │           │  │
│ └───────────────┘   └───────────┘  │
│                                    │
└────────────────────────────────────┘

In the below figure, we have a figure/canvas with two subplots. With the new proposal, the subplots will be represented by viewports, each with their own renderer. This means each can have a different pixel ratio, blend mode, post-processing, etc. There is also a viewport+renderer for the full canvas, to draw overlay stuff, like titles, ticks, widgets, colorbars.
The renderer for the overlay does not need textures for picking and depth (only for color). And since the area of the subplots is a fraction of the total canvas, the total memory needed for render textures is likely smaller than in the current situation.
┌────────────────────────────────────┐
│               Canvas               │
│ ┌───────────────┐   ┌───────────┐  │
│ │               │   │           │  │
│ │               │   │           │  │
│ │               │   │           │  │
│ │               │   │           │  │
│ │               │   │           │  │
│ └───────────────┘   └───────────┘  │
│                                    │
└────────────────────────────────────┘

Would this also alleviate performance issues in the current paradigm where having lots of subplots means lots of render calls? I got an idea for using a separate process for each renderer and writing to a Texture on a shared buffer that is then drawn to the canvas (random idea, no idea how practical this is!). (btw I know it's summer vacation in Europe, I don't expect a reply anytime soon! :)


Use consistent color to indicate "Completed" status

Currently we use green checkmarks to indicate complete in the table view cells for issues and contacts, but a solid blue fill for the result buttons.
It was suggested to use the same color for both, linking the meaning of a completed action from the button -> contact -> issue.

In addition to the above, I'd like to have an indication of partial completeness for issues. If you've contact 1 out of 3 contacts for an issue, I think maybe the empty circle with a dot in it, something like this:

Image links seem to be broken. :(

This may be moot considering some recent visual changes in https://github.com/5calls/ios/pull/166, checkin with @ianyh here

What I had mocked up generally moved towards using blue for indicating completion, both the marker in the list and the buttons to set results. Green would be reserved for the actual call action. It doesn't have a sense of partial completion, though, which is kind of compelling.


Make dependency warnings the same

While setting this up, I was missing ffmpeg and mediainfo. The missing binary warning message was different, and led me to believe that mediainfo was something I needed to download for each audiobook seperately. The warnings should be similar so users don't spin their wheels getting this setup.

Hi @kindlehl ,
please feel free to change the warning in a way you consider it more appropriate and make a pull request!


Move code from runtime to test scope

This moves code that end users don't need to the test scope. It also improves the logging setup when running tests and examples

Nice bit of refactoring, thanks again!


Publish current version with fixed selection/classed

The current 0.6.0 package published to NPM has a version of the selection/classed.js module that uses setConstant. This doesn't work because it looks like it's since been renamed to classedConstant. In master, it uses classedConstant instead, and thus, is fine. Can you publish this fix to NPM?

Yes, soon.

Released 0.6.1.

Thanks!


Tile physics properties don't have tooltips

Godot version
28174d5
System information
W10
Issue description
This thing

in painting mode. You can't check their full names without resizing the dock. A tooltip with full name is missing.
Steps to reproduce

Add a physics layer to tileset
Edit it
Go to painting mode
The property names are soooo long

Minimal reproduction project
No response

Looks like this can be fixed in tile_set.cpp inside Tileset::_get_property_list Looking at the section labeled physics are the options for the physics layer. Some of these we're deliberately not given property hints which are weird. I'm unaware of the typical rules when it comes to editor properties so maybe someone else can comment on why that might be.
The change seems pretty simple as adding the property hints into this snippet of code:
// Physics layers.
		p_list->push_back(PropertyInfo(Variant::NIL, "Physics", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_GROUP));
		for (int i = 0; i < physics.size(); i++) {
			p_list->push_back(PropertyInfo(Variant::VECTOR2, vformat("physics_layer_%d/linear_velocity", i), PROPERTY_HINT_NONE));
			p_list->push_back(PropertyInfo(Variant::FLOAT, vformat("physics_layer_%d/angular_velocity", i), PROPERTY_HINT_NONE));
			p_list->push_back(PropertyInfo(Variant::INT, vformat("physics_layer_%d/polygons_count", i), PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR));

			for (int j = 0; j < physics[i].polygons.size(); j++) {
				// physics_layer_%d/points
				property_info = PropertyInfo(Variant::ARRAY, vformat("physics_layer_%d/polygon_%d/points", i, j), PROPERTY_HINT_ARRAY_TYPE, "Vector2", PROPERTY_USAGE_DEFAULT);
				if (physics[i].polygons[j].polygon.is_empty()) {
					property_info.usage ^= PROPERTY_USAGE_STORAGE;
				}
				p_list->push_back(property_info);

				// physics_layer_%d/polygon_%d/one_way
				property_info = PropertyInfo(Variant::BOOL, vformat("physics_layer_%d/polygon_%d/one_way", i, j));
				if (physics[i].polygons[j].one_way == false) {
					property_info.usage ^= PROPERTY_USAGE_STORAGE;
				}
				p_list->push_back(property_info);

				// physics_layer_%d/polygon_%d/one_way_margin
				property_info = PropertyInfo(Variant::FLOAT, vformat("physics_layer_%d/polygon_%d/one_way_margin", i, j));
				if (physics[i].polygons[j].one_way_margin == 1.0) {
					property_info.usage ^= PROPERTY_USAGE_STORAGE;
				}
				p_list->push_back(property_info);
			}
		}

If this is still open sometime tomorrow or next I'll get a PR up for it.


Clientset wrapper for kcp

Initial stab at the wrapper generator for clients.
Next steps:

[x] Add tests
[ ] Extend //+genclient marker
[ ] Fix TODOs

First quick review pass. I tried checking out the PR and running it against kcp, but am having problems:
cd client-gen
go install
cd ../kcp
client-gen --clientset-name clusterclient --go-header-file hack/boilerplate/boilerplate.generatego.txt --input-dir github.com/kcp-dev/kcp --interface andy --output-dir ./pkg/client --group-versions apis:v1alpha1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/register.go:28:26: undeclared name: schema
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/register.go:28:53: undeclared name: apis
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/register.go:31:24: undeclared name: schema
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/register.go:36:32: undeclared name: schema
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/register.go:41:18: undeclared name: runtime
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/register.go:46:28: undeclared name: runtime
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:40:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:42:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:152:13: undeclared name: conditionsv1alpha1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:54:39: undeclared name: conditionsv1alpha1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:58:48: undeclared name: conditionsv1alpha1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:158:17: undeclared name: conditionsv1alpha1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:171:26: undeclared name: conditionsv1alpha1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:178:18: undeclared name: conditionsv1alpha1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:261:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:262:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:269:25: undeclared name: conditionsv1alpha1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:293:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:295:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:358:13: undeclared name: corev1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:372:13: undeclared name: conditionsv1alpha1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:308:38: undeclared name: conditionsv1alpha1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:312:47: undeclared name: conditionsv1alpha1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:379:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:380:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:396:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:398:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:417:8: undeclared name: apiextensionsv1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:423:8: undeclared name: apiextensionsv1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:475:9: undeclared name: runtime
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:479:15: undeclared name: apiextensionsv1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:487:29: undeclared name: apiextensionsv1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:494:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/types.go:495:2: undeclared name: metav1
/Users/angoldst/code/kcp/kcp/pkg/apis/apis/v1alpha1/register.go:28:26: undeclared name: schema

Am I running it correctly?

/hold
In the process of addressing reviews

@varshaprasad96 we don't have prow (for /hold), so I converted this PR to a draft until you're ready to unhold it 😄

@ncdc The PR is ready for review. I have fixed the error here and it should work as expected with the --clientset-api-path flag now.

@varshaprasad96 I'm still having trouble running this against kcp:
# GOPATH is unset
$ echo $GOPATH

$ pwd
/Users/angoldst/code/kcp/kcp

$ code-generator client \
  --clientset-name clusterclient \
  --clientset-api-path github.com/kcp-dev/kcp/pkg/client/clientset/versioned \
  --go-header-file hack/boilerplate/boilerplate.generatego.txt \
  --input-dir . \
  --output-dir pkg/client \
  --group-versions workload:v1alpha1 --group-versions apiresource:v1alpha1 --group-versions tenancy:v1alpha1,v1beta1 --group-versions apis:v1alpha1 --group-versions scheduling:v1alpha1

Error: error finding the module path for this package "/Users/angoldst/code/kcp/kcp"

@ncdc The --inputDir path needs to be absolute. I am able to run the generator with this command:
./client-gen client
    --clientset-name clusterclient
    --go-header-file hack/boilerplate/boilerplate.generatego.txt
    --input-dir github.com/kcp-dev/kcp --output-dir ./pkg/client
    --group-versions workload:v1alpha1 --group-versions apiresource:v1alpha1 --group-versions tenancy:v1alpha1,v1beta1 --group-versions apis:v1alpha1 --group-versions scheduling:v1alpha1
    --clientset-api-path github.com/kcp-dev/kcp/pkg/client/clientset/versioned

With that minor change, it works. Here is the output: https://github.com/varshaprasad96/kcp/tree/scaffold-kcp-wrappers/pkg/client/clusterclient

@ncdc Took the edits from your PR which enable running the generator outside of GOPATH. Also, made a few updates to handle scenarios where input in present inside a sub-folder, output path is relative etc. With these, the input path is to be relative. Here are a few cases which I have tested locally:

When --input-dir is testdata/pkg/apis and --output-dir is testdata/pkg The output compiles and works here.
[With KCP] When --input-dir is pkg/apis and  --output-dir is pwd . or some relative path ./pkg/client: Both the outputs are here and here. The command I used is:

./client-gen client --clientset-name clusterclient --go-header-file hack/boilerplate/boilerplate.generatego.txt --input-dir pkg/apis --output-dir ./pkg/client --group-versions workload:v1alpha1 --group-versions apiresource:v1alpha1 --group-versions tenancy:v1alpha1,v1beta1 --group-versions apis:v1alpha1 --group-versions scheduling:v1alpha1 --clientset-api-path github.com/kcp-dev/kcp/pkg/client/clientset/versioned

[With k8s - I think this would also satisfy the test of running outside GOPATH]. Here the input and output are in different directories and I had to run this from github.com/kcp-dev/kubernetes/staging/src. Here is the command:

/client-gen client --clientset-name clusterclient --go-header-file ../../hack/boilerplate/boilerplate.go.txt --input-dir k8s.io/api --output-dir k8s.io/client-go --group-versions autoscaling:v1 --clientset-api-path k8s.io/client-go/kubernetes

Since we don't have genclient markers for other options (as specified here) enabled, I wasn't able to test it out for all the k8s apis and versions. Just took autoscaling for test here and the scaffolding seems to look fine. Here is the output. I can create issues to add support for all other genclient marker formats if that's fine, or would you like to have them implemented in this PR?

@varshaprasad96 let's get the initial code merged, then follow-up withe the remaining markers

@varshaprasad96 is this ready to go in, and everything else can come as follow-ups?


OAuth2 implicit flow login broken in 7.0.4

Insomnia Version: 7.0.4
Operating System: macOS 10.15.1

Details
On Insomnia 7.0.4, OAuth2 auth (implicit flow) is now broken for me. Downgrading to 7.0.3 resolves the issue.
In the dev tools console I see this error, over and over:

[oauth2] Ignoring URL "https://accounts.google.com/o/oauth2/auth?hd=synthace.com&response_type=code&redirect_uri=https%3A%2F%2Fsynthace-test.eu.auth0.com%2Flogin%2Fcallback&scope=email profile&state=[rest of URL deleted]". Didn't match /(access_token=|id_token=)/

To repro the issue:

Add a new request
Set auth type to OAuth 2.0
Set grant type to Implicit
Set authorization URL to https://synthace-test.eu.auth0.com/authorize
Set client ID to IIbj3R12Gg8XQYLwThlmjzA4rWg7t01o
Set redirect URL to http://localhost:8080
Set response type to Access Token
Set audience to https://admin-test.antha.com
Click Refresh Token

This will attempt to authenticate you with an Auth0 client, which in turn delegates authentication to G Suite. You’ll see a Google-styled prompt to “Log in at Synthace.com”. Click the log in button and you’ll see this issue - the login window hangs with a blank page and the title "Forwarding..."

Should be fixed now in 7.0.5!

Awesome! Thanks so much for the fast fix!

Hit a similar problem withVersion: Insomnia Core 2020.5.0
Release date: 02/12/2020
OS: Darwin x64 20.1.0
Electron: 9.1.1
Node: 12.14.1
V8: <IP_ADDRESS>-electron.0
Architecture: x64
node-libcurl: libcurl/7.69.1 OpenSSL/1.1.1g zlib/1.2.11 brotli/1.0.7 libidn2/2.1.1 libssh2/1.9.0 nghttp2/1.41.0


converting php to html

Is your feature request related to a problem? Please describe.

Describe the solution you'd like:

Describe alternatives you've considered:

Additional context:

Closing as incomplete.


Delete feature says it's done but actually it isn't

I have create a new project and I want to delete the Examples feature (right click -> Delete), I confirm, then Rekit says it's done, and when I click "See logs" I have this :
Deleted: src/features/examples
Deleted: tests/features/examples
Updated: src/common/rootReducer.js
---import examplesReducer from '../features/examples/redux/reducer';
--- examples: examplesReducer,
Updated: src/common/routeConfig.js
---import examplesRoute from '../features/examples/route';
--- examplesRoute,
Updated: src/styles/index.scss
---@import '../features/examples/style';

but actually nothing has been deleted.
And no errors in the browser's console.
Deleting manually (doing what the logs says) makes it.

I just realised that in the terminal, where is running Rekit, I have permissions errors, so the issue that Rekit doesn't see the rm errors.


RAML : How to require parameter A OR parameter B

I have an issue. i am using raml 1.0. i have two query parameters in my raml so i want to restrict that users should input the value of one parameter atleast.
means that if user have entered the value of one parameter then other became optional but BOTH PARAMETERS CAN'T BE EMPTY. from two of them one should be necessary.
example PFB the RAML
/abc:
get:
queryParameters:
url:
type: string
image:
type: string
user should give value of url OR image.

Hi, this repository is for the OpenAPI Specification, which does not incorporate the RAML spec.
Multiple ways to get support on RAML are listed here.


Prl 506 view pdf application development

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/PRL-506
Change description
View PDF Application - development
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x] No

closing this PR as need to create fresh branch and push the changes.


refactor: add slots to references layout

This PR adds a bunch of slots to the API references to allow greater customization.
Specifcally:

It adds slots for sidebar start and end as well as content start and end
It removes the footer slot
It will remove footer below sidebar mode
It splits ApiReference.vue into two components ApiReference.vue and ApiReferenceBase.vue (open to better names)

ApiReference.vue maintains the current functionality and API of the references component included search and dark mode toggle
ApiReferenceBase.vue provides the core functionality of the references and a bunch of slots for customization

Todo:

[x] Make external dark mode toggling work (@amritk help?) going to tackle in another PR
[x] Fix mobile view for ApiReference.vue

I’ve had this Collaborative Editing PR draft #431 for a while and had to merge it today. This caused merge conflicts and I tried to resolve them, I was pretty careful and hope I kept all your changes. ✌

Sounds good! @amritk I'd like to do the hook logic too but I think it should be either another PR or another ticket to keep scope down

Okay so it seems like collaborative editing is working just the dev toolbar is a little buggy @hanspagel
https://github.com/scalar/scalar/assets/6374090/7e1d7e8b-f537-4727-bd20-cd716814bfed

That’s good news! Does switching the room work?

That’s good news! Does switching the room work?

I did not try

wow! this pr is amazing @hwkr , the interface is much cleaner. once we ensure the dev bar is working as expected i can jump in and test all the things like search + toggling ✨

wow! this pr is amazing @hwkr , the interface is much cleaner. once we ensure the dev bar is working as expected i can jump in and test all the things like search + toggling ✨

The dev bar is working as expected! There's two versions now and the standalone version is the one with search and a mobile header.

Tested collaborative editing and the syncing seems to work for me


Add section for space supporter role

We are adding a new role to cloud foundry which spawned from this github project: https://github.com/orgs/cloudfoundry/projects/6
This is the first of several PRs we are going to make for this new role. If you have any suggestion or find anything confusing please let us know.

Thanks @weymanf!


Eureka client serving wrong ip to server when docker is running

Question / Bug report
Hi,
I have a service running on my local pc, connecting to a eureka server running on a remote machine in the office. When docker is running on the client, the client serves the docker bridge (docker0, <IP_ADDRESS>) ip as discovery instead of the host ip it is running on (10.0.1.xxx). Client is running in intellij (debug mode).
When stopping the docker service it returns to its normal host ip.
Running on linux machines, ubuntu 16.04
Used versions
<spring-boot-dependencies.version>1.5.13.RELEASE</spring-boot-dependencies.version>
<spring-cloud-dependencies.version>Edgware.SR3</spring-cloud-dependencies.version>

client yml
eureka:
  client:
    serviceUrl:
      defaultZone: http://eureka:8761/eureka/
  instance:
    prefer-ip-address: true
    leaseRenewalIntervalInSeconds: 10
    leaseExpirationDurationInSeconds: 30

Any suggestions, workarounds? Or is the actually a bug?

You might want to debug in this method https://github.com/spring-cloud/spring-cloud-commons/blob/ca1a97a3a484910527b17e95ae2cc6e1c06722c6/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/util/InetUtils.java#L76.  Seems like something might be going on in your environment.

It's likely picking the internal Network first. The docs have options to exclude our include certain networks

http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/single/spring-cloud.html#ignore-network-interfaces

Thanks, for some reason the bridge was indeed targeted as interface instead of the external network.
ignoring the interface solved the issue.

So let me see if I get it right.
In my docker swarm, I have a custom network test_nerwork (<IP_ADDRESS>/24).
When I try to deploy a new services that exposes a port, docker will create a Ingress network that is used for load balance and routing-mesh(in my case <IP_ADDRESS>/16). I'm not 100% sure but not always this ingress network is the eth0 interface inside the container (can't find any documentation).
The services containers can't use the ingress network for http communication.
With the default Eureka configs, the services will use the eth0 interface IP (docker Ingress network) for registration. All communications with this service will fail because of the wrong IP advertised by the container.
To solve this problem I have 3 options:

Explicit say what IP should by advertised by the service (this only works because of the docker swarm routing-mesh). You may use any of yours swarm nodes IP.

eureka:
  instance:
    preferIpAddress: true
    ip-address: $MY_HOST_IP

By doing this you may overload the host that you chose you IP from. I don't think this is a good option.

Ignore all networks interfaces and set a preferred one.

spring:
  cloud:
    inetutils:
      ignoredInterfaces:
        - docker
        - eth.*
        - lo
      preferredNetworks:
        - 10.0.0

Only setting the preferred one will not work.

Not use an IP address at all.

eureka:
  instance:
    preferIpAddress: true
    hostname: $SERVICE_NAME

Where $SERVICE_NAME must be the name of the service in your swarm.
It will be registered at Eureka as http://myservice:6003 and will work fine if you don't have any service running from outside the docker swarm.
I just don't know how the load balance will behave (Ribbon + Swarm DNS).

@spencergibb @ryanjbaxter
It looks like the spring.cloud.inetutils.ignoredInterfaces does not work with Greenwich.RELEASE.
I run docker container with
docker run -e "spring.cloud.inetutils.ignoredInterfaces=bridge" and it still registers with Eureka (running on a different remote server) using the private IP address rather than a public IP address of host machine.
I have tried ignoring docker0 as it is shown in the documentation page but getting the same result. Tried adding spring.cloud.inetutils.ignoredInterfaces=bridge to a application.properties file and to bootstrap.properties file but still the same result. When Microservice registers with Eureka it uses the private IP address of the host machine even though this machine is assigned a static public IP address.
The only way I am able to make my microservice register with Eureka Discovery with a public IP address is by using these two properties:
docker run -e "eureka.instance.ip-address=xx.xx.xxx.xxx" -e "eureka.instance.prefer-ip-address=true"
This way my microservice does register with Eureka using the public IP address. But I do not like this approach because I have to provide public IP address manually for each Microservice I start.
Is there a way to make a Microservice running in a docker container to register with Eureka(running on a remote server) using a public IP address of its host machine?

Please open a separate issue

@spencergibb @ryanjbaxter
It looks like the spring.cloud.inetutils.ignoredInterfaces does not work with Greenwich.RELEASE.
I run docker container with
docker run -e "spring.cloud.inetutils.ignoredInterfaces=bridge" and it still registers with Eureka (running on a different remote server) using the private IP address rather than a public IP address of host machine.
I have tried ignoring docker0 as it is shown in the documentation page but getting the same result. Tried adding spring.cloud.inetutils.ignoredInterfaces=bridge to a application.properties file and to bootstrap.properties file but still the same result. When Microservice registers with Eureka it uses the private IP address of the host machine even though this machine is assigned a static public IP address.
The only way I am able to make my microservice register with Eureka Discovery with a public IP address is by using these two properties:
docker run -e "eureka.instance.ip-address=xx.xx.xxx.xxx" -e "eureka.instance.prefer-ip-address=true"
This way my microservice does register with Eureka using the public IP address. But I do not like this approach because I have to provide public IP address manually for each Microservice I start.
Is there a way to make a Microservice running in a docker container to register with Eureka(running on a remote server) using a public IP address of its host machine?

Could you share the new issue link please?

Commenting here as it does pertain to the issue:
@RodrigoPetter

I just don't know how the load balance will behave (Ribbon + Swarm DNS).

I can confirm that this combination (Ribbon with service name routing instead of IP + Swarm DNS round-robin) can cause issues with load balancing when all instances of the destination service are running on the same port, internally (by e.g. setting ´server.port´ to a non-zero value).
The reason for this behaviour is explained in the following Docker documentation page: https://docs.docker.com/network/overlay/#bypass-the-routing-mesh-for-a-swarm-service
Quoting:

To bypass the routing mesh, you can start a service using DNS Round Robin (DNSRR) mode, by setting the --endpoint-mode flag to dnsrr.  A DNS query for the service name on the Docker host returns a list of IP addresses for the nodes running the service. Configure your load balancer to consume this list and balance the traffic across the nodes.

Since Ribbon already performs the LB under the assumption that the server list contains unique entries (in this case, it will not), ultimately the Ribbon Client server lists would look as follows (example: port 8080):
´´´
RibbonClient_service-1=[service-1:8080, service-1:8080, ... ],
...
RibbonClient_service-2=[service-2:8080, service-2:8080, ... ]
´´´
Since they are both identical, trying to resolve e.g. ´service-1:8080´ will actually let the Docker daemon choose the destination host, in which case the first entry seems to be taken every time.
The end result of this is "sticky" load balancing wherein a call to e.g. ´service-1´ would call instances in (for example) the following order:
´´´
1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1
´´´
with seemingly no real deterministic order, other than that it tries to be round-robin. It ultimately is not, and can cause a discrepancy (that I've observed) of up to 10-20% in incoming requests between instances.
The solution to this problem (with Docker DNSRR enabled) would be to either:

Set unique ports per application instance (server.port=0)
Register to Eureka via IP by setting eureka.instance.preferIpAddress=true) on client applications.

Hopefully this helps someone, as it was quite tricky to debug.

Commenting here as it does pertain to the issue:
@RodrigoPetter

I just don't know how the load balance will behave (Ribbon + Swarm DNS).

I can confirm that this combination (Ribbon with service name routing instead of IP + Swarm DNS round-robin) can cause issues with load balancing when all instances of the destination service are running on the same port, internally (by e.g. setting ´server.port´ to a non-zero value).
The reason for this behaviour is explained in the following Docker documentation page: https://docs.docker.com/network/overlay/#bypass-the-routing-mesh-for-a-swarm-service
Quoting:

To bypass the routing mesh, you can start a service using DNS Round Robin (DNSRR) mode, by setting the --endpoint-mode flag to dnsrr.  A DNS query for the service name on the Docker host returns a list of IP addresses for the nodes running the service. Configure your load balancer to consume this list and balance the traffic across the nodes.

Since Ribbon already performs the LB under the assumption that the server list contains unique entries (in this case, it will not), ultimately the Ribbon Client server lists would look as follows (example: port 8080):
´´´
RibbonClient_service-1=[service-1:8080, service-1:8080, ... ],
...
RibbonClient_service-2=[service-2:8080, service-2:8080, ... ]
´´´
Since they are both identical, trying to resolve e.g. ´service-1:8080´ will actually let the Docker daemon choose the destination host, in which case the first entry seems to be taken every time.
The end result of this is "sticky" load balancing wherein a call to e.g. ´service-1´ would call instances in (for example) the following order:
´´´
1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1
´´´
with seemingly no real deterministic order, other than that it tries to be round-robin. It ultimately is not, and can cause a discrepancy (that I've observed) of up to 10-20% in incoming requests between instances.
The solution to this problem (with Docker DNSRR enabled) would be to either:

Set unique ports per application instance (server.port=0)
Register to Eureka via IP by setting eureka.instance.preferIpAddress=true) on client applications.

Hopefully this helps someone, as it was quite tricky to debug.

Have you tested if this situation happens with Consul as server discovery?


[BUG] Crew creation error when langgraph is installed

Description
Created an app with Crew AI and tools , working fine , But when I installed Langgraph Crew creation failed
Steps to Reproduce
Install langgraph 0.2.3 to an existing crew ai app, try to create a Crew, error occurs
Expected behavior
Langgraph and Crew AI should work together if I need to create an App by using both
Screenshots/Code snippets
crew = Crew(
agents = agents,
tasks = tasks,
process = Process.sequential,
full_output = True,
verbose = 2
)
Environment Details:

Operating System: Ubuntu 22.04.4 LTS

Python Version: 3.10

crewAI Version:  0.51.1

crewAI Tools Version:0.8.3

Logs
-xSjLma3a/lib/python3.10/site-packages/pydantic/main.py", line 193, in init
self.pydantic_validator.validate_python(data, self_instance=self)
pydantic_core._pydantic_core.ValidationError: 1 validation error for Crew
verbose
Input should be a valid boolean, unable to interpret input [type=bool_parsing, input_value=2, input_type=int]
For further information visit https://errors.pydantic.dev/2.8/v/bool_parsing
Possible Solution
I have tried downgrading langchain and langchain-core version with that of the working app but no luck
Additional context
pydantic version in both working and errored app is as below
pydantic                                 2.8.2
pydantic_core                            2.20.1

You need to set verbose to 1 or 2 on your crew not True /False


Health monitor fix

Health check / monitor, what's the difference?  A few consonants and vowels, it turns out.

Tested

[x] lbaasv2 with 2.7.2 device
[x] lbaasv2 with 4.0.1 device
[x] lbaasv1 with 2.7.2 device
[x] lbaasv1 with 4.0.1 device


(sum(count.row.sum == 0) >= 1 | sum(count.col.sum == 0) >= 1), ncol(counts) < K

Something problematic about the spaces. The last parts are the actual changes I made.

@zhewa thanks for the fix. Please send future pull requests to the devel branch, rather than master


Trainersanity

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Enable Trainersanity
Enable Key Items Only

Expected behavior
Trainersanity Checks should not display
Screenshots
Desktop (please complete the following information):

Poptracker version:
Pack Version: 1.0.4

not a bug, this is autotracked correctly and we will assume people do not enable incompatible options.


Accordion clean up

The remnants of the app-level accordion component no longer justify having it as a distinct component.
This clean-up is a follow up on https://github.com/alphagov/collections/pull/2245#discussion_r568751951, a test rewrite PR that unveils leftovers from https://github.com/alphagov/collections/pull/2148.

All looks good this end @alex-ju, thanks for this PR, I can close this one once merged


[BUG]: DownloadAsyncV2 downloads to memory instead of disk

What happened?
While downloading using DownloadBuildArtifacts@1 task it seems to download to memory. That task in turn just calls the DownloadBuildArtifactTaskV1_0_0 plugin located in this repo, hence it's being placed here.
What has been observed is that when downloading a larger file, in our case ~450MB, is that the agent memory usage increases by the download progression exactly and then freezes when it can no longer allocate more memory as those agents only have 1GB of RAM in total. Thus my conclusion is that the code downloads the artifact to memory instead of onto disk.
Versions
Current agent version: '3.245.0' / Debian 12
Environment type (Please select at least one enviroment where you face this issue)

[ ] Self-Hosted
[ ] Microsoft Hosted
[x] VMSS Pool
[ ] Container

Azure DevOps Server type
dev.azure.com (formerly visualstudio.com)
Azure DevOps Server Version (if applicable)
No response
Operation system
No response
Version controll system
No response
Relevant log output
No response

Hi @philipborg,
We have identified that high memory usage during artifact downloads may depend on the storage type and whether the files are compressed. When using Blob Storage without gzip compression downloads are typically streamed directly to disk, minimizing memory usage. However, with regular file storage and compressed blob artifacts, downloads may be loaded into memory, causing agents with limited RAM to freeze. To address this, we recommend verifying your storage backend and adding file compression in your pipeline if it's not blob storage. Compressing artifacts ensures that downloads are handled efficiently by streaming to disk, which reduces memory consumption and prevents agent freezes.
you can use ArchiveFiles task to compress artifacts before publishing it


Teams s4b interop

in the office roadmap Featured ID: 53934, the following is stated, however it doesnt seem to be reflected in the documentation above, please can you clarify?
Microsoft Teams - Screen sharing in Teams/Skype for Business interop
Enables a Teams user to share their screen in chat or VoIP call with a Skype for Business user
Featured ID: 53934
Added to Roadmap: 7/30/2019
Last Modified: 11/27/2019
Tags: O365, Worldwide (Standard Multi-Tenant), Microsoft Teams, General Availability

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

ID: d53d0cb0-90a6-5932-f78e-7de6fcc4d481
Version Independent ID: 3d468027-cc37-5199-32ec-819bf62b2caa
Content: Microsoft Teams - Microsoft Teams
Content Source: Teams/teams-and-skypeforbusiness-coexistence-and-interoperability.md
Service: msteams
GitHub Login: @LanaChin
Microsoft Alias: v-lanac

Hi @i-windows, thank you for your feedback.
It isn't supported natively, it's achieved through interop escalation. This was added to the article when this feature was launched, so it's up to date.
In the same article you found the definition of "interop escalation" and "native interop":
https://docs.microsoft.com/microsoftteams/teams-and-skypeforbusiness-coexistence-and-interoperability#native-interop-and-interop-escalation

@i-windows Thank you for submitting feedback. We understand that this issue has been resolved.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.


remove NeutronMsg + wasm bindings and use protobuf directly

Move away from NeutronMsg and wasm bindings which ties the authorization contract to Neutron. With this change we can deploy the authorization contract to any tokenfactory chain and move away from what Neutron is deprecating at the moment.
Note: can't use neutron-std or latest commit of neutron-sdk because they inject cosmwasm_2_0 feature and we can't test with it atm.
Once we can, we can replace neutron-sdk + cosmos-sdk-proto for neutron-std and Stargate for AnyMsg, added TODOs there. Code would be the same.

makes sense to me. just one thing with regards to the future neutron crates version, would we be able to use it on osmosis?

yes, they are using the same type_url


Documentation says ev.item, implementation has ev.plane

Fix in favour of the documentation.

Item is more natural, because plane could be somehow falsely understood as the source coordinate space of the touch, which however always is the view.


NameError: name 'sim_mat_key' is not defined

Hi Ian,
Thanks for creating this package!  I was able to install and run the test example on my Mac but when I tried on our cluster, installation seemed to proceed ok but when I try the test command:
DP_GP_cluster.py -i test/test.txt -o test/test -p png -n 20 --plot
I get the following error and, no plots are generated.  Do you have an idea on to how to fix this?
Optimizing parameters for optimal clusters.
Cluster 1, 20 genes
Cluster 2, 20 genes
Cluster 3, 20 genes
Cluster 4, 20 genes
Cluster 5, 20 genes
Cluster 6, 20 genes
Saving sampling results.
Plotting expression and sampling results.
WARNING: skipping heatmap plot generation, too many dendrogram recursions for scipy to handle
Traceback (most recent call last):
File "/srv/gsfs0/projects/curtis/jcharalel/dev/packages/anaconda/envs/dpgp/bin/DP_GP_cluster.py", line 683, in
core.save_posterior_similarity_matrix_key([gene_names[idx] for idx in sim_mat_key], args.output_path_prefix)
NameError: name 'sim_mat_key' is not defined
Looking back at the installation of the dependency GPy, I did receive error messages but it looked like it salvaged.  I'm including it here in case its informative:
Collecting GPy
Using cached GPy-1.9.2.tar.gz
Requirement already satisfied: numpy>=1.7 in /home/jcharale/miniconda3/envs/dpgp_mini/lib/python2.7/site-packages (from GPy)
Requirement already satisfied: scipy>=0.16 in /home/jcharale/miniconda3/envs/dpgp_mini/lib/python2.7/site-packages (from GPy)
Requirement already satisfied: six in /home/jcharale/miniconda3/envs/dpgp_mini/lib/python2.7/site-packages (from GPy)
Collecting paramz>=0.9.0 (from GPy)
Using cached paramz-0.9.1.tar.gz
Collecting decorator>=4.0.10 (from paramz>=0.9.0->GPy)
Using cached decorator-4.2.1-py2.py3-none-any.whl
Building wheels for collected packages: GPy, paramz
Running setup.py bdist_wheel for GPy ... error
Complete output from command /home/jcharale/miniconda3/envs/dpgp_mini/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-D7lSgG/GPy/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/tmpm3Ld83pip-wheel- --python-tag cp27:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: invalid command 'bdist_wheel'

Failed building wheel for GPy
Running setup.py clean for GPy
Running setup.py bdist_wheel for paramz ... error
Complete output from command /home/jcharale/miniconda3/envs/dpgp_mini/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-D7lSgG/paramz/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/tmpYFM_GEpip-wheel- --python-tag cp27:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: invalid command 'bdist_wheel'

Failed building wheel for paramz
Running setup.py clean for paramz
Failed to build GPy paramz
Installing collected packages: decorator, paramz, GPy
Running setup.py install for paramz ... done
Running setup.py install for GPy ... done
Successfully installed GPy-1.9.2 decorator-4.2.1 paramz-0.9.1
Thank you!

Sorry for the delay, what is your version of scipy? This hasn't been tested
on the new scipy 1.0. That could be it.
On Mon, Mar 12, 2018 at 7:10 PM, jcharalel<EMAIL_ADDRESS>wrote:

Hi Ian,
Thanks for creating this package! I was able to install and run the test
example on my Mac but when I tried on our cluster, installation seemed to
proceed ok but when I try the test command:
DP_GP_cluster.py -i test/test.txt -o test/test -p png -n 20 --plot
I get the following error:
Optimizing parameters for optimal clusters.
Cluster 1, 20 genes
Cluster 2, 20 genes
Cluster 3, 20 genes
Cluster 4, 20 genes
Cluster 5, 20 genes
Cluster 6, 20 genes
Saving sampling results.
Plotting expression and sampling results.
WARNING: skipping heatmap plot generation, too many dendrogram recursions
for scipy to handle
Traceback (most recent call last):
File "/srv/gsfs0/projects/curtis/jcharalel/dev/packages/
anaconda/envs/dpgp/bin/DP_GP_cluster.py", line 683, in
core.save_posterior_similarity_matrix_key([gene_names[idx] for idx in
sim_mat_key], args.output_path_prefix)
NameError: name 'sim_mat_key' is not defined
And, no plots are generated. Do you have an idea on to how to fix this?
Thank you!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_PrincetonUniversity_DP-5FGP-5Fcluster_issues_6&d=DwMCaQ&c=imBPVzF25OnBgGmVOlcsiEgHoG1i6YHLR0Sj_gZ4adc&r=QGd0b_06v3hDpkoxZUB9c2iQ5RMTOts_DJ98uEZzA-o&m=GxAJzICBqmpJglr-nwZn7QIryYQlnABQdqmKBKRkZDU&s=0-wyrjlzZfJ2yzgBQiPa9xnVvXOwwfj5kZruYu6rVZQ&e=,
or mute the thread
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AFnc9DM0GrzJnOTdizqxmKRjEVvyqQwXks5tdwBcgaJpZM4Sn1kb&d=DwMCaQ&c=imBPVzF25OnBgGmVOlcsiEgHoG1i6YHLR0Sj_gZ4adc&r=QGd0b_06v3hDpkoxZUB9c2iQ5RMTOts_DJ98uEZzA-o&m=GxAJzICBqmpJglr-nwZn7QIryYQlnABQdqmKBKRkZDU&s=pQgs9TB0j_ZZQ-lew_t1RNcnoUuG36aXBd25FcJJsXM&e=
.

--
Ian McDowell
Bioinformatician II
Duke University

Hey, no worries, I was able to get it resolved.  Turns out it was an issue with the display on the cluster.  Used a different backend and it worked.

Hi @jcharalel , I also came across this issue. How did you solve it? Thanks!

figure it out! if you run it on the cluster, you can add plt.switch_backend('agg') after import matplotlib.pyplot as plt.

The answer is not clear. I am having a similar issue.  I have scipy (1.1.0). Is that a problem?

@gurkanbebek this issue is actually caused by matplotlib x11 backend, you can add  plt.switch_backend('agg') in the DP_GP_cluster.py script.

Thank you


Drop requirement for a CLA

Description
The Mbed TLS project no longer requires a CLA. Contributions from now on
must be made under both Apache-2.0 AND GPL-2.0-or-later licenses, to enable
LTS (Long Term Support) branches of the software to continue to be provided
under either Apache-2.0 OR GPL-2.0-or-later. Contributors must accept the terms
of the Developer Certificate of Origin (DCO) by adding a Signed-off-by: line to
each commit message.
The software on the development branch continues to be provided under
Apache-2.0.
Update README.md, CONTRIBUTING.md and pull_request_template.md to explain
the new licensing model. Add a copy of the DCO to the project.
Expand the full Apache-2.0 license text in the LICENSE file and remove the
redundant apache-2.0.txt.
Fix inconsistent list formatting in CONTRIBUTING.md.
Add project description to README.md, based on the text from
https://tls.mbed.org/.
Status
READY
Requires Backporting
YES (2.7 and 2.16)
Migrations
NO
Todos

[ ] Changelog updated

Note: there's a contradiction between the PR description saying "Requires backporting: No" and the label "needs: backports".

Note: there's a contradiction between the PR description saying "Requires backporting: No" and the label "needs: backports".

Fixed the description.

The CI fails on Mbed OS, but not for the known issue we had. This PR deletes the file apache-2.0.txt, which is targeted explicitly by the importer script in Mbed OS.
The Mbed OS importer script will need updating once this PR is merged.

This PR deletes the file apache-2.0.txt, which is targeted explicitly by the importer script in Mbed OS.
The Mbed OS importer script will need updating once this PR is merged.

If this breaks our scripts, it may also break users' scripts. That's not an issue for the development branch, but it may be a consideration for the LTS branches which are not meant to break anything ever.

OK, I'm happy to revert the LICENSE file changes on the LTS branches but I'd prefer to keep the changes in development, for 2 reasons:

It follows the Arm internal guidance for OSS contributions.
It enables the GitHub UI to better advertise the project as Apache-2.0, without having to click on the license.

So I'll merge this PR later today or tomorrow if I don't hear anything.


add fix on aat sector, first addition geojson serializers

todo:

test serializers from pysoar
test fix with serializers

still todo: changelog entries


Adding an idempotency key for contract creation.

This is related to the bug discussed at https://manifoldmarkets.notion.site/Market-creation-outage-d6c0ed5a001a4057bcb89f82787a5b84
I'm intending to mitigate the effect of any future bugs by preventing duplicate contract creation.
This change is NOT properly tested on the backend because I don't have a suitable dev environment set up (is this possible?) but maybe the magic Vercel PR validation environment will help.

Thanks for the PR, tagging @sinclairity for review! Quick uninformed flyby thoughts are that this makes sense & seems like a best practice though I'm not sure this issue warrants the extra complexity, handling this case might be a bit like fighting the last battle.
Testing against the Vercel dev build is pretty reasonable, though imo we should just hand out our GCP dev keys to any aspiring open source developers who ask -- any downsides to this @sinclairity?

Also just found this Discord thread with more info: https://discord.com/channels/915138780216823849/1265525070223118468

Overall though, I'm not sure this is worth fixing. Afaik we only run into this problem when we're experiencing database problems, which means these duplicate markets might be serving as a helpful sign something is wrong.

Do you have any alarms on 5xx errors? That might be a more elegant way to get a signal, since there's a decent amount of pain associated with bugs like this

User frustration / confusion
Users' mana getting depleted
Burden on mods to clean up duplicate markets or any other debris
Burden on users to mitigate the effect of their duplicate markets, e.g. renaming and making them private
Lingering mess, e.g. I still have duplicates I haven't complained about till now https://manifold.markets/tarehart?tab=questions


Alarm disabled without code in particular conditions

Alarmo Version
v1.10.1
HA Version
2024.5.3
Bug description
General Configuration:

Disarm after trigger: disabled
Enable MQTT: disabled
Enable alarm master: enabled

Areas:

Area_0:

Sensors:

sensor_0 (Allow open initially: disabled)

Area_1:

No sensors

Codes

Require code for arming: disabled
Require code for disarming: enabled
Require code for switching mode: enabled
Code format: "PINCODE"

When the alarm of the Area_1 is armed, the alarm of Area_0 is disabled and the sensor_0 is "open" (state in which if armed Area_0 will trigger the alarm).
In this state when trying to arm the master alarm the system immediately disarm all the alarm in all areas without asking the code.
Steps to reproduce

Arm Area_1
Disarm Area_0
Put sensor_0 in "open" state (that will trigger the alarm of Area_0 if armed)
Arm "master"

After these steps the system automatically disarm all alarms without asking the code.
Relevant log output
No response

In this state when trying to arm the master alarm the system immediately disarm all the alarm in all areas without asking the code.

What would you expect to happen instead? The alarm master attempts to synchronize the states of all areas, so it should either arm all areas or disarm all areas. In this case arming is not possible, so disarming happens.
It could be argued that it would be better to restore the states of the areas as they were before, but I don't know if this information is available.
In the documentation the following is stated:

The Alarm Master cannot determine its state if some are disarmed while others are armed. If the Alarm Master is used for arming/disarming the alarm, this condition should not occur.
If the areas are independently operated, the user is reponsible to maintain synchronism between the areas. If independent operation is desired, usage of the Master Alarm is not recommended.

What is meant here, is that users should choose either to operate their areas via the master OR operate the areas independently.
You are using a mix of them, which is very difficult to handle by design.
A lot of scenarios can occur and the implementation will be able to deal with all to your expectation.
If one area is armed and the other is disarmed, the state of the alarm master cannot be determined, also the transitions between states of the areas are not the same.
To extend the discussion, let's consider another (more extreme) scenario:

area A is in state disarmed
area B is in state armed home
area C is in state triggered

User attempts to set alarm to armed away via the master.
However, area B has a sensor active that prevents that area to go into state armed away.
What would you expect to happen to all 3 areas and what should become the state of the alarm master?
If you have a clear idea how the master alarm should behave, I could see if I could improve the implementation.
However since I have been struggling with this during implementation, at the moment the disclaimers in the documentation should be taken as advice/warning.


Constrained domain adaptation for labeling of intervertebral discs

The paper by Bateson et al. seems relevant for this problem.
The task is simpler that in the paper of Bateson et al.: it only consists of a semantic labeling. The output would be a single voxel located at the posterior tip of the intervertebral disc, with the value corresponding to the level. Eg: value=3 for disc C2-C3, value=4 for disc C3-C4, etc.
The performance of the method would be compared to that from Rouhier et al., which performed non-semantic detection of intervertebral discs:

Dataset to use:

https://github.com/spine-generic/data-multi-subject#spine-generic-public-database-multi-subject
ground truth: will be uploaded by @lrouhier

@rezazad68 we do have the iVDM3Seg dataset in the lab, but i think you can directly jump to step number 2

Following the documentation I have processed the dataset, the resulted "spineGeneric_results" folder contains several modalities and information for each person. The method proposed by Bateson et al uses the Water (Wat) modality as the Source domain, and the In-Phase (IP) modality as the Target domain. For spine-generic dataset which modalities should be used as domain and target? could you please determine the related modalities and segmentation files?

labeling should be done on the T1w and T2w. @lrouhier can give you more context

I have reviewed most of the samples for T1w and T2w in "SpineGeneric_results" but did not find the 3D segmentation masks. There is only a 2D disc mask is available, however, for the training process, 3D segmentation masks are required. I also reviewed the index.html file in quality control, which provides a user-friendly visualization tool but did not find 3D masks for discs labeling. @lrouhier could you please advise me?
The method proposed by Bateson et al uses 2D slices, thus, I need a 3D disc mask to generate such slices for the deep model.

Indeed, there are no 3D segmentation mask as the task is semantic labeling (ie: single voxel per disc). Please see the work of @lrouhier (and Lucas: please add some relevant material here).

Hi, sorry about the delay.
There are no 3D segmentation masks as Julien mention. As single voxel labels represent a really small target (even in 2D), we took inspiration from the detection of facial keypoint (see Wang et al) And converted the single voxel to Gaussian functions. I think this could work in 3D as well, to generate the masks.
The Forsberg et al article is interesting as it is taking a different approach, even though it might not be the most optimized algorithm. Basically, you would need a dataset with segmented discs, but we could use a model to segment the disc and then retrieve what we want from there. This would allow you to use the same method as Bentson.
Another option would be to use a cascaded architecture. The first step would be an R-CNN to get a large sense of the localisation of each disc (see Sa et al). This would be the constrained step. Then we could extract these patches and feed them to a small countception/Attention Unet/CNN architecture to get the point at the posterior tip of the disc.
About the ground truth:
You can use the spine-generic/data-multi-subject. I created my 2D ground truth for the loader with the script called prepare_dataset_vertebral_labeling. This was tailored to my needs But I am sure we can modify it to make it 3D or more relvant for this.

You can use the spine-generic/data-multi-subject. I created my 2D ground truth for the loader with the script called prepare_dataset_vertebral_labeling. This was tailored to my needs But I am sure we can modify it to make it 3D or more relvant for this.

I would suggest to use the same ground truth, so the method @rezazad68 will implement could be directly compared (that's the whole point-- otherwise comparison not possible). @rezazad68 the idea here is to adapt the method so it is compatible with single-voxel labels

@jcohenadad Thanks for the update, I would follow your direction. To get an idea of how they use the dataset I have prepared IVDM3Seg. dataset according to the requirements, now the problem is the missing code (dice3dn) in the Bateson et al GitHub. I have created an issue and contacted the author still waiting for an update. I will follow the same pre-processing approach on Spine Generic public database and will revise it for semantic labeling.


[❇Feature Addition❇] : Custom Chat Bot Addition For FAQ's answer and user Navigation in Website

Custom Chat Bot Addition Functionality:
Description
1.)  Enhanced User Engagement: Chatbots can interact with users in real time, providing immediate responses and keeping them engaged with your platform.
2.)  Lead Generation and Conversion:  Chatbots can assist in qualifying leads, capturing user information, and guiding them through the sales funnel, potentially increasing conversions.
3.)   Thus to provide the FAQS' to the user can be efficient  and easy and also the web interface  understanding  will also become  easy to the user thus reducing the manual work load and automating the user engagement by addition of the chatbot
4.) Scalability: As your user base grows, chatbots can easily scale to handle increased demand without requiring proportional increases in support staff.
5.) Improved Customer Support: Chatbots can handle a large volume of queries simultaneously, reducing wait times and ensuring users get the assistance they need quickly.
6.) 24/7 Availability: Unlike human agents, chatbots can operate around the clock, offering support and answering questions even outside regular business hours.
Type of PR

[✅ ] Other (specify):   Website  Chatbot Feature , Functionality Addition

Screenshots / videos (if applicable)
Video Link :
https://github.com/user-attachments/assets/a75f2e8e-f33e-402a-8e11-bb6bc9a6b531
Screen Shots Of Feature:

Checklist:

[✅ ] I have performed a self-review of my code
[✅ ] I have read and followed the Contribution Guidelines.
[✅] I have tested the changes thoroughly before submitting this pull request.
[✅ ] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[✅ ] I have commented my code, particularly in hard-to-understand areas.

Additional context:
1.) Future Enhancement of the chat bot can also be done such as by providing the multilingual support by using ML technique's
to reach the larger level of audiences.

@PatilHarshh
Please review this PR if you find it relevant and is really adding value to the product and project you can merge by adding this feature it should enhance the website versatility and user interactiveness.

@PatilHarshh
Please review this PR if you find it relevant and is really adding value to the product or project you can merge by adding this feature it should enhance the website versatility and user interactiveness.


Useful summaries needed for default client CLI output

The current output of the CLI isn't very helpful for development, as it only outputs a single attribute for each object we read from the server. We should have something that at least allows us to identify the object in question. We can make this easier by refactoring things a little.
For example, we can have something like
class SearchVariantSetsRunner(AbstractSearchRunner):
     def __init__(self, args):
           super(SearchVariantSetsRunner, self).__init__(args)
           request = RequestFactory(args).createGASearchVariantSetsRequest()
           self._setRequest(request, args)
           self._method = self._httpClient.searchVariantSets

     def printObject(self, variantSet):
          print(variantSet.datasetId, variantSet.id, sep="\t")

The idea here is that we just have to implement the printObject method in each of the runner classes, and all the iteration is taken care of in the superclass.
We should then define printObjects for many of the runners, especially ReadGroupSets and Reads.

Would it make sense to do this by adding meaningful __repr__() methods to protocol classes like VariantSet? I know these classes are auto-generated for now, but the rest of the code makes some pretty specific assumptions about these classes' structure (as demonstrated in the above code) anyway, so it may make sense to wrap _protocol_definitions in some non-autogenerated module that adds functionality, and this module would then be imported by the rest of the application instead.

Interesting idea @macieksmuga... I guess this would imply writing out all the information contained in the objects though, whereas I'm thinking of a short and simple summary here.
What sort of stuff had you in mind for the updated classes (besides repr)? We could do something simple like having the generated classes in protocol_definitions be called (say) _VariantSet and then have
class VariantSet(_VariantSet):
     # Stuff

at the bottom of protocol.py. It would work pretty well I think (although the imports would be entertaining to work out).

@jeromekelleher pretty much that. For now, __repr__() is what I was thinking of - and specifically, craft each protocol class's string representation so that it only returns a minimally useful set of data (nicely formatted), not everything contained in each object.

One thing though: repr is supposed to be a machine readable version of an object. I think it's probably __str__ that you would want to implement.

@jeromekelleher You're absolutely correct: __str__, not __repr__. My bad.

Moved https://github.com/ga4gh/ga4gh-client/issues/26


IC-1526 add contract for submitting session feedback

What does this pull request do?
adds contract for submitting session feedback
the contract is there, but the unit test part is commented out because it doesn't exist yet.
What is the intent behind these changes?
validate the API endpoint for submitting session feedback.

In previous PRs, we've been adding the data-fetching function (commented out) and the Mock functions for this (mockApis/interventionsService.ts) - would you have time to add them here too?

Can we add the related Cypress methods too?

@lawrence-forooghian @Gweaton sure i don't mind doing this, but in the future i think isolating just the interaction would be good practise, since it allows the reviewer to focus only on the contract. the stubs seems to me to be more involved with the writing of code in the service layer i.e. implementing the UI functionality that requires the interaction described here.

@lawrence-forooghian @Gweaton sure i don't mind doing this, but in the future i think isolating just the interaction would be good practise, since it allows the reviewer to focus only on the contract. the stubs seems to me to be more involved with the writing of code in the service layer i.e. implementing the UI functionality that requires the interaction described here.

That's true, but on the other hand it's easier to write these mocks when the API contract is fresh in your mind, especially if a different person is writing the contracts to actually building some feature around them.


Maybe it's because you set --residual to True during training but False during testing

meet the same problem, @ZhizhuoZhang said a good solution~

I get this grid image during test the set5 with the pretrain model, can you give some suggestion?

I get this grid image during testing set5 with pretrain DBPN_x4 model, can you give some advice about that? @xmyhhh @ZhizhuoZhang @alterzero


Add syntax highlighter from ui-toolkit to new token monorepo app

Token was ported from the TFE project, where it had its own syntax highlighter.
Once Token is merged into the monorepo (#229), replace the syntax highlighter with the one from ui-toolkit.

Doing this as part of #272


Create a folder named 'tests' which contain all tests

This PR also slightly improves the code coverage.

Any idea why it fails with python 3.5 ?


BrokerLoad Fail

Steps to reproduce the behavior (Required)

CREATE TABLE `primary_table_not_null` (`K1`  date not null ,`K2`  datetime not null ,`K3`  varchar(20) not null ,`K4`  varchar(20) not null ,`K5`  boolean not null ,`K6`  tinyint not null ,`K7`  smallint not null ,`K8`  int not null ,`K9`  bigint not null ,`K10` largeint not null ,`K11` float not null ,`K12` double not null ,`K13` decimal(27,9) not null )
             ENGINE=OLAP
             PRIMARY KEY(`k1`,`k2`,`k3`,`k4`,`k5`)
             COMMENT "OLAP"

             DISTRIBUTED BY HASH(`k1`,`k2`,`k3`) BUCKETS 3
             PROPERTIES (
                 "replication_num" = "1",
                 "storage_format" = "v2"
             )

LOAD LABEL test_broker_load_b18bb57a_271d_11ed_ab2d_00163e0e489a.primary_table_not_null_1661724400515 (DATA INFILE( "xxxx/data01.orc") INTO TABLE `primary_table_not_null` COLUMNS TERMINATED BY "," (k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12, k13) SET (K1=k1,K2=k2,K3=k3,K4=k4,K5=k5,K6=k6,K7=k7,K8=k8,K9=k9,K10=k10,K11=k11,K12=k12,K13=k13) )  WITH BROKER hdfs_broker (xxxx) PROPERTIES("timeout"="300","max_filter_ratio"="1")

Expected behavior (Required)
Success
Real behavior (Required)
Fail
{'status': True, 'result': (('7807480', 'primary_table_not_null_', 'CANCELLED', 'ETL:N/A; LOAD:N/A', 'BROKER', None, 'resource:N/A; timeout(s):300; max_filter_ratio:1.0', 'type:ETL_RUN_FAIL; msg:null', '2022-08-29 06:06:40', '2022-08-29 06:06:43', '2022-08-29 06:06:43', '2022-08-29 06:06:43', '2022-08-29 06:06:43', None, '{"Unfinished backends":{},"ScannedRows":0,"TaskNumber":0,"All backends":{},"FileNumber":1,"FileSize":2142}'),), 'msg': None}
StarRocks version (Required)

You can get the StarRocks version by executing SQL select current_version()
branch-2.3-release

Analyzer in 2.3 is different from 2.4 and master, it cann't parse column name in broker expr for the following pr:
https://github.com/StarRocks/starrocks/commit/b5fd8e1a7b9d02e317f45f3319f3f5b94c64b2ad
the solution is to revert this pr.

http://<IP_ADDRESS>:8090/view/version_publish/job/branch_asan_2.3/19/#showFailuresLink


Permissions Per World NOT WORKING

I cannot get permissions to work per world. Here is my permissions.yml: https://pastebin.com/69iKcfUm
Those in the Builder group should be able to use world edit in 2 of the worlds and /god in one of them. However it does not work, nor does it matter what permission node I put there.

PEX 1.x is no longer supported. This repository is for PEX 2, which is currently in development.
While PEX 2 is in development, you can switch to LuckPerms.


[SPARK-37591][SQL] Support the GCM mode by aes_encrypt()/aes_decrypt()

What changes were proposed in this pull request?
In the PR, I propose new AES mode for the aes_encrypt()/aes_decrypt() functions - GCM (Galois/Counter Mode) w/o padding. The aes_encrypt() function returns a binary value which consists of the following fields:

An initialization vector (IV) generated per every aes_encrypt() call using java.security.SecureRandom. The length of IV is 12 bytes.
The encrypted input.
An authentication tag that can be used to verify the integrity of the data. The length of the tag is 16 bytes.

The aes_decrypt() functions assumes that its input has the fields as showed above.
For example:
spark-sql> SELECT base64(aes_encrypt('Apache Spark', '0000111122223333', 'GCM', 'NONE'));
ak3k4wV71YJAjg6d5sUTm15Ag9fyQP0UL/ComBkBxzVvft2NBOCF+g==
spark-sql> SELECT aes_decrypt(unbase64('ak3k4wV71YJAjg6d5sUTm15Ag9fyQP0UL/ComBkBxzVvft2NBOCF+g=='), '0000111122223333', 'GCM', 'NONE');
Apache Spark

Why are the changes needed?
To achieve feature parity with other systems/frameworks, and make the migration process from them to Spark SQL easier. For example, the GCM mode is supported by:

BigQuery: https://cloud.google.com/bigquery/docs/reference/standard-sql/aead-encryption-concepts#block_cipher_modes
Snowflake: https://docs.snowflake.com/en/sql-reference/functions/encrypt.html

Does this PR introduce any user-facing change?
No. The AES functions haven't been released yet.
How was this patch tested?
By running new checks:
$ build/sbt "test:testOnly org.apache.spark.sql.DataFrameFunctionsSuite"
$ build/sbt "sql/test:testOnly org.apache.spark.sql.expressions.ExpressionInfoSuite"
$ build/sbt "test:testOnly org.apache.spark.sql.MiscFunctionsSuite"

Test build #146044 has started for PR 34852 at commit 1c3e5b2.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50519/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50519/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/50519/

Test build #146044 has finished for PR 34852 at commit 1c3e5b2.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/146044/

Test build #146063 has started for PR 34852 at commit 98885d0.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50539/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50539/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/50539/

Test build #146063 has finished for PR 34852 at commit 98885d0.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/146063/

retest this please.

Test build #146112 has started for PR 34852 at commit 98885d0.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50587/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50587/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/50587/

Test build #146112 has finished for PR 34852 at commit 98885d0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/146112/

Test build #146128 has started for PR 34852 at commit dffeec7.

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50604/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/50604/

Test build #146131 has started for PR 34852 at commit fc29610.

Test build #146128 has finished for PR 34852 at commit dffeec7.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/146128/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50606/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50606/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/50606/

Seems Linters, licenses, dependencies and documentation generation is flaky (this PR https://github.com/monkeyboy123/spark/actions/runs/1570703624 has the same issue)
Error in loadNamespace(x) : there is no package called ‘pkgdown’
Calls: loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted
                    ------------------------------------------------
      Jekyll 4.2.1   Please append `--trace` to the `build` command
                     for any additional information or backtrace.
                    ------------------------------------------------

I am going to ignore the issue in R, and merge this PR since other GAs passed successfully.

Merging to master. Thank you, @sarutak @gengliangwang and @cloud-fan for review.

Test build #146131 has finished for PR 34852 at commit fc29610.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/146131/


⚠ Bofrost.be has degraded performance

In d87fe3b, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2338 ms

Resolved: Bofrost.be performance has improved in 01b59f4.


SlicerRadiomics extension cannot be found on mac

Hello,
I downloaded both stable and nightly versions (5.4.0 and 5.5.0) of Slicer, installed and opened the software according to the instruction. (without any problem)
But, in the extension manager I could not find "SlicerRadiomics" extension to install on my macbook air M2, Ventura 13.2.1
On the website, the "SlicerRadiomics" can be found for Linux and Windows but not Mac OS.
I would be grateful to instruct me what should I do to be able to download and use this extension.

it might be a packaging issue - can you look in the python console and paste any messages here?
As a fallback you can get older versions of Slicer.

duplicate of #77 ... and sorry for the trouble, I have not been able to prioritize this.


Fix proxy agent lock-up

What this PR does / why we need it:
The last change to the logic to abort-all envoys introduced a scenario when envoy could dead lock on rapid config changes (as is possible with firing config scheduling for the same config too often as done by the cert watcher).
This fixes the case by always reconciling on any error (abort or not). The reconciliation logic will apply in case the current config aborts immediately after reconciliation.
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #1329
Special notes for your reviewer:
Release note:

@kyessenov @rshriram as the name of the branch suggests, this is not the first time something like this has happened.
This PR fixes a specific race condition, but we need a backstop.
In this case agent knew something was wrong, Envoy was dead at which point, the pod should have died or health check should have failed.
We need to let higher level nannies do their job.

That's precisely the problem here.  This particular happened probably because some DNS resolution was slow, and envoy took longer than normal to initializing. If you pay attention to kube-dns, you can see it crashing from time to time. If you happen to make a DNS resolution during that time, Envoy will wait for DNS timeout and not be active until then.

I'd appreciate code reviews here. The bug slipped through the previous ones. Coordinating multiple processes and go-routines is complicated despite the few lines of code involved.

@kyessenov ps aux showed envoy was dead. Is that not definitely proof ?

I'll send a follow-up fix to cert watcher spam. There should not have been two restarts triggered within milliseconds.


Internet explorer compatibility broken

Using findIndex w/o polyfilling breaks notyf in all available Internet Explorers.
Usage:
https://github.com/caroso1222/notyf/blob/694728ea786b4b391dac17ad60616d8b4b121076/src/notyf.ts#L73
Error in Internet Explorer:

Good catch, thanks for opening the issue. I didn't really have any plans of supporting IE (unpopular opinion, I know) but if this is the only pain point to make it work in IE then I'll look into it and fix it in the next patch. Thanks again for noting it!

Thanks. I'm glad to hear that and yes, it is the only thing that prevents notyf from working in IE11. After I polyfilled Array.prototype.findIndex everything worked as expected.

You can just put this in a file and use it, I guess.

@caroso1222 would you accept a PR on this?
I'll just implement the old way of finding an index instead of a modern "findIndex" method to make it usable without any polyfills.

@mdix can you prepare a PR, please?
I'm on Ubuntu since January and it seems that I would be without available Windows machine for a while now.

Fixed it already. Thank you all for the help! 😃


Browser detection improvements: adding isEdge, fixing issues

This commit adds the new isEdge flag to allow Microsoft Edge to be detected. For this purpose, the version of ua-parser-js was updated, which also fixes an invalid name for the Android Browser on some devices, and simplifies the code regarding PhantomJS detection.
Note that this pull request does not include any fix to improve the compatibility of Aria Templates with Microsoft Edge (which will be added in a later PR, if required)

This is fine for me, but let's wait a bit (before start of the next release) to see how far the rest of the framework can be tested in current Edge, and if a release of UAParser.js comes soon.


Wiki Installation instructions for SDK location

On following install instructions for the first time, on the following page please add a link to download the sdk,
https://github.com/BowlerHatLLC/vscode-as3mxml/wiki/Choose-an-ActionScript-SDK-for-the-current-workspace-in-Visual-Studio-Code
"Download Apache Royale here, if you don't have it yet. Then restart VS Code"
If you install only the extension, the sdk will not be listed in the command palette.

Note: I don't know where the JS only option is coming from. I had Royale installed at one point.
Also, on this page, https://github.com/BowlerHatLLC/vscode-as3mxml/wiki/Create-a-new-ActionScript-project-in-Visual-Studio-Code-that-targets-JavaScript-and-HTML, there were two errors from the extension in the problems view:

"src path could not be found"
"Main.as could not be found"

Restarting vscode solved the issues

Additionally, an instruction video may help new users.

Additionally, on this page, the Debugger for Chrome has been deprecated. It appears that it is replaced with an already installed VS code extension JavaScript Debugger. The instructions may be different.

On following install instructions for the first time, on the following page please add a link to download the sdk,

All of the supported ActionScript SDKs are linked at the top of that page. vscode-as3mxml supports more than just Royale, and there are links to the AIR SDK, Flex SDK, and the Feathers SDK too.

Note: I don't know where the JS only option is coming from. I had Royale installed at one point.

The extension automatically searches a few common places where the SDK might be found, including Flash Builder's installation location, the PATH environment variable, FLEX_HOME, ROYALE_HOME, and possibly a couple more. It looks like you installed Royale from npm, which is automatically added to the PATH.

there were two errors from the extension in the problems view

Interesting! I can reproduce this issue. I'll try to get it fixed.

Additionally, on this page, the Debugger for Chrome has been deprecated. It appears that it is replaced with an already installed VS code extension JavaScript Debugger. The instructions may be different.

You are correct. The Debugger for Chrome extension is deprecated for the built-in JavaScript debugger. I removed the step that said that Debugger for Chrome should be installed. After that, I was able to follow all of the steps successfully with no changes required (though, just to be more clear, I mentioned that if you want to debug from a web server, you need to start it yourself). Chrome launched without specifying runtimeExecutable and breakpoints in the Main.as file were recognized correctly.

At this point, I consider everything resolved. If you want to try the fix to creating a new project, you can download the latest nightly build from GitHub Actions, or you can build it yourself, if you prefer.

I did get the debugger to work. But I had to add the path in "webRoot": "/bin/js-debug" to the end of the url (full url - "localhost/bin/js-debug/") in the browser for it to work. It immediately hit the breakpoint. It works great btw.

Side Note: Upon clicking on the Global variables text OSX displayed a message about microphone access:


Throw errors: c++: error: unrecognized command line option ‘-stdlib=libc++’

I was installing node-gyp build for node-opencv but threw the error:
CXX(target) Release/obj.target/opencv/src/init.o
c++: error: unrecognized command line option ‘-stdlib=libc++’
make: *** [Release/obj.target/opencv/src/init.o] Error 1
any idea about this? Thanks.
p.s.
haos-mbp-2:node-opencv Hao$ node-gyp list
gyp info it worked if it ends with ok
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| darwin | x64
0.10.28
gyp info ok

Either this issue is so simple to fix that the developers are just ignoring all other developers with zero C++ experience or there isn't a fix for this yet in 2018 with Node-gyp being used in production systems across the globe. What a shame elitism is.

🙄 <- love this emoji.
I'll close this out - this issue should have been reported to the node-opencv project, not here.


[ENHANCEMENT] Add an DeleteInputAssemblies option

Hi,
I suggest adding an option to delete the files used for merge. This is useful when you merge and write the output in the same folder, with a postbuild command for example, to make sure you no longer have the files.
ILmerge already have something for that:
https://documentation.help/MSBuild.ExtensionPack/7368adc1-2e63-5d8f-eb2f-f794b92fd578.htm

Here is workaround/alternative solution.
Since launching ILRepack already requires preliminary MSBuild configuration, I use the built-in DeleteTask for cleaning. Here is example:
<ItemGroup>
  <RepackTarget Include="$(TargetDir)Microsoft.Extensions.Caching.Abstractions.dll"/>
  <RepackTarget Include="$(TargetDir)Microsoft.Extensions.Caching.Memory.dll"/>
  <RepackTarget Include="$(TargetDir)Microsoft.Extensions.Configuration.Abstractions.dll"/>
</ItemGroup>
<PropertyGroup>
  <ILRepack Condition="'$(ILRepack)' == ''">$(PkgILRepack)\tools\ILRepack.exe</ILRepack>
  <IlRepackTargets>@(RepackTarget->'"%(Identity)"', ' ')</IlRepackTargets>
</PropertyGroup>

<Exec Command="$(mono) "$(ILRepack)" /...other options.../ $(IlRepackTargets)"

<!-- Delete input assemblies -->
<Delete Files="@(RepackTarget);"/>


Ctrl + j not working in integrated terminal with zsh

VSCode Version: Version 1.12.2 (1.12.2)
OS Version: OS X E Capitan 10.11.6

Steps to Reproduce:

Open integrated terminal ctrl+`
In terminal:

> bindkey '^j' backward-word #edited
> enter some text

Input key combination ctrl + j

Expected
Cursor moves back a word, this the behavior that iTerm and Terminal.app exhibit
Actual
Newline is sent, essentially the same as using return

bindkey doesn't seem to be in the path in Terminal.app/bash for me?

It's in zsh which some with mac by default? So just type zsh in Terminal.app.

Works for me, if you remove the backtick from your command:
bindkey '^j' backward-word

Not
bindkey '^j' backward-word`

Oh that was a typo, I am using bindkey '^j' backward-word
Hmm that works in the integrated terminal for you?
Expected (in iTerm):

Actual (in integrated terminal):

FYI, I just tried rebinding ctrl + j with bash's native binding commands:
bind -x '"\C-j": clear; ls'

Again this works in iTerm and Terminal.app but not in the integrated terminal.

Hm I doesn't seem to be working anymore, maybe I didn't test it right or something.
I looked into it a little bit, it seems to work fine in the xterm.js demo which is the underlying library used. ^j actually translates to '\n' (carriage return) so that's why it's happening. The question is why does it work in the demo but not VS Code.
It definitely gets registered within zsh inside VS Code:

Stepping through the code nothing stuck out as misbehaving through when run inside VS Code; they appear to both be sending '\n'. Nothing in the env seems to be wrong either.

Aw I was really of hoping it was something wrong with my local configuration.
Also I got the same behavior when trying it on windows + cygwin with a fresh install of vscode, ctrl + j not being distinguished from newline.

Hey just wondering if there was any progress on this?
If this is low priority could one of the contributors maybe point me a area/file you think might be causing this issue? Thanks!

I can't look into it any further right now, I'm pretty stumped on where to go from here though. It's a pretty technical problem so it might not be the easiest thing to jump in to.
If you want to you can start by cloning https://github.com/sourcelair/xterm.js and trying to reproduce it using the demo. If you can reproduce it you can check what's sent to the backend by loading up devtools and debugging https://github.com/sourcelair/xterm.js/blob/35b32b721e9be175c2eedb83c264442d171152b5/src/xterm.js#L1756
If xterm.js works fine, it would be a matter of doing a similar exercise but figuring out why VS Code behaves different by debugging similar code.

(Copied from https://github.com/Microsoft/vscode/pull/30353#issuecomment-314262105)
This was happening because ctrl+j translates to \n (see https://github.com/sourcelair/xterm.js/blob/e849e3f2065ba13e53460c5c1c4febcd86384b49/src/EscapeSequences.ts#L30) and since we normalized \n to \r all input to the pty, this was getting lost and converted to a new line. The fix here is to never "sanitize" data that has already been processed by xterm.js (ie. key strokes and paste) as xterm.js knows how to handle them. We only need to process text that we send directly to the terminal such as a script the user is running or text being pasted into vim, etc.

Hmm just updated to 1.14.1 and this still isn't working for me...

This will only be in 1.15.

Oh okay thanks.


Make sure createNavigationContainer is mounted before updating state

Gets rid of warnings and makes sure there are no memory leaks.
My app was always throwing warnings when navigating between navigators in a SwitchNavigator, because the container component tried to call setState after it was already unmounted. This small fix gets rid of my warnings.

This makes sense and I'm happy to get rid of that warning.
Although, I am a tiny bit concerned that dispatch will get called before the component isMounted, and the state change and action will be lost.

Can you revert the dependency changes?

Oh yes, reverted them now


Route description is optional

According to the code route_desc is required, but according to the specifications  it is not:
this.CheckRequiredField(header, header.Name, this.RouteMap, "route_desc");
see:
        protected virtual Route ParseRoute(T feed, GTFSSourceFileHeader header, string[] data)
        {
            // check required fields.
            this.CheckRequiredField(header, header.Name, this.RouteMap, "route_id");

            this.CheckRequiredField(header, header.Name, this.RouteMap, "route_short_name");
            this.CheckRequiredField(header, header.Name, this.RouteMap, "route_long_name");
            this.CheckRequiredField(header, header.Name, this.RouteMap, "route_desc");
            this.CheckRequiredField(header, header.Name, this.RouteMap, "route_type");

            // parse/set all fields.
            Route route = new Route();
            for (int idx = 0; idx < data.Length; idx++)
            {
                this.ParseRouteField(feed, header, route, header.GetColumn(idx), data[idx]);
            }
            return route;
        }

I have forked to rorlic/GTFS and am in the process of fixing it.

Nice thanks! :+1:

Fixed.


[BugFix] Fix commit timestamp fallback & granularity

What type of PR is this：

[x] bug
[ ] feature
[ ] enhancement
[ ] others

Which issues of this PR fixes ：

Fixes #5783
Problem Summary(Required) ：

since we send publish order by commit timestamp so that we need handle timestamp fallback & same timestamp cause by currentTimeMillis() granularity

run starrocks_be_unittest

run starrocks_fe_unittest

@Mergifyio backport branch-2.2

@mergifyio backport branch-2.1

@mergifyio backport branch-2.0