test

Description
A detailed explanation of the changes in your PR.
Feel free to remove this section if it is overkill for your PR, and the title of your PR is sufficiently descriptive.
Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
Here I tell how I validated my change
TODO(replace-me)
Use this space to explain how you validated that your change functions exactly how you expect it.
Feel free to attach JSON snippets, curl commands, screenshots, etc. Apply a simple benchmark: would the information you
provided convince any reviewer or any external reader that you did enough to validate your change.
It is acceptable to assume trust and keep this section light, e.g. as a bullet-point list.
It is acceptable to skip testing in cases when CI is sufficient, or it's a markdown or code comment change only.
It is also acceptable to skip testing for changes that are too taxing to test before merging. In such case you are
responsible for the change after it gets merged which includes reverting, fixing, etc. Make sure you validate the change
ASAP after it gets merged or explain in PR when the validation will be performed.
Explain here why you skipped testing in case you did so.
Have you created automated tests for your change? Explain here which validation activities you did manually and why so.
Reminder for reviewers
In addition to reviewing code here, reviewers must also review testing and request further testing in case the
performed one does not seem sufficient. As a reviewer, you must not approve the change until you understand the
performed testing and you are satisfied with it.

/test ocp-4-11-ui-e2e-tests

/test all

/test all

/test gke-qa-e2e-tests ocp-4-14-e2e-tests ocp-4-13-e2e-tests

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/retest

/test all

/test all

/test all

/test all

/retest

/test all


Onboard Van Nguyen

Getting to know cloud.gov

[ ] Bookmark the pertinent links listed here.
[ ] Read our service disruption guide to learn how we handle customer-facing service disruptions.
[ ] Join the cloud.gov team Google Group so you can participate in team-wide internal communication.
[ ] Make sure they're in the list of people working on the project.
[ ] Add them to the @cg-team in Slack’s Team Directory.
[ ] Add them to the recurring cloud.gov meetings that are relevant for them in the team calendar.

Required items for all team members
These items help us fulfill security and compliance requirements (including for FedRAMP).

[ ] Complete GSA OLU GSA Mandatory Cyber Security and Privacy Training, including accepting the GSA IT Rules of Behavior, which is required before we can give you access to any cloud.gov systems. If you joined GSA more than two months ago, you've already completed this task and can just check the box.
[ ] Add their name, whether they're Cloud Ops (Platform), and the date they joined the team to the training tracker. Copy the formulas for the due dates from an existing row (grab the "corner" of the cells and pull down).
[ ] As they complete training, fill out their completion dates in the training tracker.

Platform-specific required items
The person must complete OLU security training before being added to privileged access on any system.

[ ] Ask the System Owner to have them added to the @18F/cloud-gov-ops team on GitHub. (For contractors: Confirm they have cleared GSA security review before doing this one!)
[ ] If the new person is a contractor, ask the System Owner (Eddie) to have them added to the @18F/cloud-gov-partners team on GitHub.
[ ] Add them to @cg-operators in Slack’s User Groups.

Grant them access to the following:

[ ] AWS Accounts via the AWS web console (not Terraform) and provide one-time credentials.
[ ] AWS GovCloud
[ ] AWS East tied to GovCloud

Note: AWS user names should be identical across accounts so that permissions can be correctly managed by terraform

[ ] Nessus Manager GUI
[ ] Opsgenie
[ ] StatusPage
[ ] Make sure that PagerDuty will alert you through at least one of these ways:
[ ] Make them an admin of the platform.
[ ] Add them to the cloud-gov-operators organization in cloud.gov.

Platform-specific items

[ ] Review the System Security Plan (the latest version lives on Google Drive; look for "cloud.gov System Security Plan (SSP)" as a .docx file). Of particular note for onboarding: Section 9 (System Description) and Section 10 (System Environment)
[ ] Join the #cg-platform channel on Slack.
[ ] Join the #cg-support channel on Slack.
[ ] Join the #cg-services channel on Slack.
[ ] Join the #cg-compliance channel on Slack.
[ ] Join the #cg-program channel on Slack.

Get familiar with our AWS setup

[ ] Read about AWS onboarding
[ ] Read about the AWS CLI
[ ] Review the daily maintenance tasks for when you're on support duty

Learn our policies and procedures:

[ ] Coordinate with your onboarding buddy to go through Incident Response Training within 60 days of joining the team (and annually after that). This will cover the following document, which you should also review before or after training:
[ ] Read the Incident Response Guide.
[ ] Coordinate with your onboarding buddy to go through nonpublic information training within 60 days of joining the team (and annually after that). This will cover the following documents, which you should also review before or after training:
[ ] Review the 18F open source policy guidance about protecting sensitive information.

[ ] Read our sharing secret keys policy.
[ ] Review the 18F requirements for password management.

[ ] If you're Cloud Ops or Business Unit: Coordinate with your onboarding buddy to go through Contingency Planning training within 10 days (and annually after that). This will cover the following document, which you should also review before or after training:
[ ] Read the Contingency Plan.

Read the following documents as well, which explain our practices in a formal written way. Reach out to your buddy or the team if anything is unexpected or confusing.

[ ] Read the Continuous Monitoring Strategy, particularly the cloud.gov team responsibilities.
[ ] Read the Configuration Management Plan.
[ ] Read the 18F Security Policies and Procedures. These documents explain the high-level policies and procedures we must comply with while running cloud.gov, sorted into security control "families" They explain that we follow GSA IT security policy, and they provide a summary of the procedures in our System Security Plan.

Services-specific items

[ ] Join the #cg-services channel on Slack.
[ ] Take a look at our existing brokers.
[ ] Check out our staging and production Concourse instances, and take a look at some of our pipelines.

Ensure you know what's happening on the team:

[ ] Subscribe to the cloud.gov team calendar (click the + in the bottom right) so you know when assorted team meetings are happening in the various squads. Tip: When you plan Out of Office time, make a calendar event for that on the cloud.gov calendar so that your teammates know you'll be away.
[ ] Subscribe (through the GitHub watch function) to the cg-site GitHub repository notifications.
[ ] Ask Program Manager or Director for access to the cg-supportstream Slack channel.

Install a development environment for cloud.gov

[ ] Install brew

If this is a new GSA-provided laptop, it likely does not come with brew installed. Install brew and other tools via the 18F platform scripts from the 18F laptop repo (or manually if you have strong preferences about the laptop script)
bash <(curl -s https://raw.githubusercontent.com/18F/laptop/master/laptop)

[ ] Install CloudFoundry for mac per their docs:

brew tap cloudfoundry/tap
brew install cf-cli
brew install cloudfoundry/tap/bosh-cli
brew install openssl

[ ] Verify CloudFoundry Installation via the CLI (once an existing cloud.gov teammate has made your cloud.gov admin account)

cf login -a api.fr.cloud.gov --sso
cf orgs

As a cloud.gov team member, you should have a very giant list of organizations
If you have none or one (e.g. sandbox) org, contact your facilitator

[ ] Install the Bosh CLI using their instructions for MacOS

brew install cloudfoundry/tap/bosh-cli
[ ] Verify the installation using

bosh -v

[ ] Install Terraform and other tools per cg-provision

brew install terraform
brew install awscli
brew install jq
[ ] Verify Terraform installed and is in your path

Run terraform and helper text should display

[ ] Verify AWS CLI installed and is in your path

Run aws and helper text should display

[ ] Install the Concourse fly CLI

Download the fly binary zip for MacOS from https://concourse-ci.org/
Extract the binary and move it to /usr/local/bin/fly so it's in your path

cd ~/Downloads
mv fly /usr/local/bin/fly

[ ] Verify using fly -h

[ ] Install cloud.gov dev tools by cloning the cg-scripts repo

git clone https://github.com/18F/cg-scripts.git

@RonWilliams Can you add Van to the correct team for this repo so I can assign this issue to him? His github ID is soutenniza. Thanks.


Test Coverage for XOR and BYTE

The exec_xor and exec_byte are not tested yet.
See codecov
Strategy: add unit tests in test_comparison_operations
Examples unit tests for other opcodes: test_push_operations.py

Hi, can I work on this issue?

Sure, issue is yours!

I have look at tests for OR https://github.com/sayajin-labs/kakarot/blob/883b6da2329897aee9205da9206889e848f256ec/tests/unit/src/kakarot/instructions/test_comparison_operations.cairo#L391
and it seems that only "boolean" OR is tested.
Should I do the same for XOR or should I write bitwise XOR tests ?


Update DEVELOPER_GUIDE.md

I had a problem on windows powershell installing yarn.
doing yarn install yarn -g.  First, that's not a valid syntax for global install. it should be "yarn global add xxxx"
futhermore, doing using yarn to install yarn led me to having version 1.5.1, which is very old.
Yarn's own installation instructions (https://yarnpkg.com/getting-started/install) say you should use : npm install yarn -g
as such, I suggest changing these first lines back to npm install for global packages.
Furthermore, I'd think that aside from yarn's install, the other packages should not be installed globally, in favor of using a command like "npx". unfortunately, I don't know the equivalent using yarn, so I can't recommend.
Thanks for contributing!
Please check if the PR fulfills these requirements 👌:

[ ] Confirm the PR related to a dedicated issue
[ ] Confirm your PR corrects a single bug or implements a single feature
[ ] Your code is linted locally prior to submission
[ ] Your code is fully tested: 99% to 100% coverage
[ ] Everything is correct on Sonar dashboard
[ ] Confirm your code is under Apache 2.0 license
[ ] Confirm your documentation is under CC-BY-4.0 license
[ ] Confirm license and copyright content is created/updated in each file (see CONTRIBUTING.md)
[ ] Confirm changelog.adoc is updated
[ ] If corrects vulnerabilities, confirm changelog.adoc contains CVE IDs

Also remember: each commit MUST contain a sign off message (see CONTRIBUTING.md) 🙄
Indicate related issue:
issue #...
Explain what is done, scope, limitations etc.
Does this PR introduce a breaking change? 😁

Looks like npm install for lerna is also better.
(base) PS C:\Users\ncoder\extern\rosaenlg> lerna run build
lerna : The term 'lerna' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ lerna run build
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (lerna:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

(base) PS C:\Users\ncoder\extern\rosaenlg> npm install lerna -g
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported
C:\Users\ncoder\AppData\Roaming\npm\lerna -> C:\Users\ncoder\AppData\Roaming\npm\node_modules\lerna\cli.js
+<EMAIL_ADDRESS>added 690 packages from 316 contributors in 46.464s
(base) PS C:\Users\ncoder\extern\rosaenlg> lerna run build

(works...)

I use windows mainly when developing on RosaeNLG.
I switched from npm to yarn for the project at some point for some reason (which is probably somewhat related to lerna).
But I did not install the development stack for a while, thus these instructions might be somewhat outdated.
Thanks for the PR.
PS: To get through the DCO check, please sign your commits using git commit -s -m ...

mocha does not need to be installed globally, you are right.
I did install it globally because I use it in the command line a lot, and so I don' need to type npx each time.
Can you please remove the mocha global install for the instructions?
Then I'll merge the PR.


Refactor code/get_rrnDB_files.sh script to parse path and filename

code/get_rrnDB_files.sh currently has the path hard-coded and requries passing in the filename without a path. Would be better to pass in the full path and filename and have the script figure out what these are automatically.

Closed with 3f181b4


Added support for netImgui.

Note
I renamed the filea ImGuiImplemention.cpp/.h to ThirdPartyBuildImGui.cpp/.h to match ThirdPartyBuildNetImgui.cpp/.h. I think it makes it easier to figure out how things are build this way, but can be renamed to something you prefer.
I added the configuration options (defines, modules/path includes) directly in the netImguiLibrary.cs, making it clear what this is about. Something similar could be done with ImGuiLibrary.cs I believe.
ToDo

Fix issue with editor not drawing until PIE activated once
Implement UE4 sockets (instead of using Winsock directly)
Figure out how to expose options to user, and distribute netImgui server exe

Ok, so first nuances that will be easy to fix or modify.

A minor backward compatibility issue with the FApp::GetProjectName(). I will fix if I decide that it makes sense (as it is only below 4.19).
I'll check that later again but I'm pretty sure that there is a non-unity compile error.
"ThirdPartyBuild..." names. TBH I don't like them - Sorry about that :) I looked at the files before looking at your comment and somehow linked Build with Build.cs, which confused me at first. I agree with the motive, though, so maybe something needs to be done. I used the "implementation" for two reasons: because it is housing an implementation code and because it provides an interface to that implementation for the remaining part of the module (needed for instance for hot-reloading). Maybe it makes sense to move both files to a separate ThirdParty directory and name them ImGuiSomething and NetImGuiSomething. Now the "something" would be? ;) I used the "implementation" because of the above but I understand you disagree with that name ;)
About moving all options to different Build.cs files. I didn't use ImGuiLibrary.Build.cs in my first tests and only added that later to be able to see it in Visual Studio. I treat that library as a repository with the original code hidden behind the ImGui module. And since the ImGui is the only one exposed for users, I prefer to have configs there. But some configs, especially those not needed for the users can be in other places, so I'm not going to change anything here. Although maybe at some point, I would be tempted to move "enabled" property to the ImGui config as you could then use it to make sure that the other module is not on the dependancy list when not used.
Exposing settings should be easy. I can handle that, but I might have some questions. There already is a settings panel and since the ImGui module is the one that is built and loaded, it should also handle options.

However, I'm thinking about creating a special merge branch to be able to investigate more important issues and help more with the innards of that plugin.
I see the connection and that works, but the results are different:

I might be missing something but it looks to me that the remote code calls only multi-context debug events. This means that any debug code registered in the world delegates and code form the update functions will not work. The world delegates can be fixed, but I'm less sure about the tick functions. Additionally, the multi-context events are called twice, so debug that relies on one call per frame can break. Wouldn't it be possible and make to only use one or the other? So, if PIE 1 is bound to remote then only update remote and mirror the results to the game viewport. There probably would be some issues with that approach but at least the whole debug would be handled and no debug would be called twice. Implementation-wise, I think that the proxy will be a better place for integration. The proxy could track whether it is bound to remote or local and depending on that update corect context.
I use git but I'm still not that familiar with GitHub and its merging. I usually did squash and merge as it is simple. I will check whether I can find some more advanced options that would allow me to make a branch from this request and go from that.

A minor backward compatibility issue with the FApp::GetProjectName(). It is only below 4.19, so not event sure if it is worth fixing. And I can do this (if necessary) as I have an older engine version.

This is used for the name displayed remotely, you could just assign "UE4" for older engine version, or find another meaningful name.

"ThirdPartyBuild..." names. TBH I don't like them - Sorry about that :) ...

No problem, it's your plugin, feel free to change anything to what fit your vision better.

I see the comment about adding the command. Yeah, that would be something to think about. That and a function in the module interface.

Also, like I mentionned in the code, user being able to tell if they are local or remote drawing is really usefull, to modify content based on that. Not sure if you'd prefer through a module function, exposing netImgui api or some delegate parameter. I'll leave that decision to you.

Now to issues that I think are more problematic. I'm thinking about creating a special merge branch to be able to investigate them and help more with the innards of this plugin.

Makes sens, I realized I should also have done that, since as soon as I checkin code, it gets added to Pull request at the moment.

I see the connection and that works, but the results are different:

I notice that I have a disconnect UI issue I'll have to look at the netImgui server code. You can see it on your screenshot to, with way too many tabs.

I might be missing something but it looks to me that the remote code calls only multi-context debug events. This means that any code registered in the world delegates and code form the update functions will not work. The world delegates can be fixed, but I'm less sure about the tick functions. Additionally, the multi-context events are called twice, so debug that relies on one call per frame can break. Wouldn't it be possible and make to only use one or the other? So, if PIE 1 is bound to a remote context then only update that and mirror the results. There probably would be some issues with that approach but at least the whole debug would be handled and no debug would be called twice. Implementation-wise, I think that the proxy will be a better place for that integration. The proxy could track whether it is bound to remote or local context and depending on that update correct one.

Mmm, I did not add any call to delegates, the behavior should be fairly the same (like you ask, I either draw in proxy context or netImgui context, not both). All I did was add a NewFrame/EndFrame of the netImgui::Context into the ContextManager update function (so they are always called, my first attempt was in the proxy, but they don't get called when the world is inactive, so the netImgui::context was not updated).  And then proxy assign the remote context if it detects it should be remote drawing. I did see different content when testing, by that was one was showing the 'Editor' context context, and the other one was showing the 'PIE' context content. Would you mind sharing your test delegate setup so I can test it too?

Ad 1. Yes, I suppose that there will be just a different function for that. I had the same problem with folders names at some point and I think it was somewhere around 4.19.
Ad 6. We'll see. I might have some questions but it should be fine. I would expect that there will be some wrapper functions + commands.

Mmm, I did not add any call to delegates,

That is interesting :) There is a mechanism that is kicking in when you don't call delegates explicitly. I guess that is what is happening. I will debug that when I get a moment. Is that the editor context that I see in the remote connection? That would explain why I only saw debug from static functions. I would need to check the order though. I will check it and maybe clean. Also the proxy seems like a right place to keep all that. It was supposed to be some sort of "abstraction" on top of the proper context. But I only added what I needed at the time and if it didn't work for you it means that it need to be improved.
I'll see what I can do with the branch, debug it a bot more and try to see how I would do the context. But I'm a bit loaded with lots of other stuff so please be patient with me.
And here is the file with the example that you asked. Should be all that is needed but let me know if you find that something is missing:
ImGuiDebugOrderTest.zip

Here's the Game running
This is the game running stand alone (no editor) and without a connection to netImgui Server

Here's with netImgui Server
This is the game running stand alone (no editor) with a connection to netImgui server. The game screen display only the game.

I believe the differences you are seeing, are between the 'Editor' proxy context and the 'PIE' proxy context and these were there before netImgui. You can toggle between the 2 (in MainMenu bar displayed in netImgui) and you will see they swap ImGui content. Perhaps before, they were both outputed to the same viewport when using FImGuiContextProxy::UpdateDrawData, and only displayed the last rendered (PIE).

Wouldn't it be possible and make to only use one or the other? So, if PIE 1 is bound to a remote context then only update that and mirror the results.

As mentionned in previous post, I did not affect anything regarding how you allow user to draw, nor added delegate calls, nor added any new proxy context. My changes are limited to :

In FImGuiContextProxy::BeginFrame/EndFrame, skip calling the related ImGui functions, if proxy context tied to remote
In FImGuiContextProxy::SetAsCurrent/IsCurrentContext, modified to use NetImgui context if proxy tied to remote
In FImGuiContextManager::Tick, start by updating the remote Context (connection/EndFrame/StartFrame/Draw Special Menu)

So, with/without netImgui, you are updating 2 proxy context and I'm always picking the first context by default (user can switch them in the mainMenu bar displayed in netImgui). Maybe you want to only activate the PIE proxy context when it's active, and netImgui should also bind itself to it. If the user want to mirror the netImgui content in their game windows, we can easily do that (with caveat that screensize won't match and not input, like my dual output mirror demo).

Oh yes, I only realised after your previous post that it may be the editor context. And I didn't notice your bar before - I somehow lost it in the previous post. So yes, it is all looking good :)

As mentionned in previous post, I did not affect anything regarding how you allow user to draw, nor added delegate calls, nor added any new proxy context.

Yes, I believe that. It all makes sense after realising that this is the editor context. Sorry that I didn't see it before, but I forgot that it even existed.
The editor context was just a dummy added to make sure that there is always at least one valid context and to this point, it was completely neglected in this plugin. So I now see better why it was causing you troubles - even more kudos that you decided to handle it.
But it, of course, makes sense to send it. In the past, I was doing a similar thing but additionally hiding it after pressing the play button. I got used to that and probably also why I assumed that I see the PIE. Later I might add a similar option.
I will need to review that editor context and make sure that it behaves correctly. There is something wrong with the order of events but calling only multi-context ones seems fine in this case, although it should be possible to change if necessary. And I expect that the order issue will be in the proxy or manager (not many more places to look at ;).
I'll test it again and come back here. And I will try to see how to branch from a pull request.

The PIE works perfectly. So to confirm, the whole misunderstanding was because I confused editor with PIE context.
I'm merging that, not even sure whether it needs a separate branch. I still might create one for experiments but whatever is here is a great improvement and is stable, so should go to master.
Do you have any preference how I should credit you? Name from the licence?
Also, will you mind if I have some questions later? I'd like to know what would you like to see exposed, what in the settings, etc. And on the other hand I might have a question about mirroring, but first I will update docs and check some issues with the editor context that we found.

I'm merging that, not even sure whether it needs a separate branch. I still might create one for experiments but whatever is here is a great addition and should go to master.

👍

Thanks you for that. Do you have any preferences how I should credit you? Full name from the licence?

I guess my name and link to the netImgui depot would be nice. Glad it worked without too much fuss.

Also, will you mind if I have some questions later on?

Certainly, I don't think the current integration is finalized yet. I'll be happy to continue providing support and anwser questions. You can reach me directly at my email address (see my netImgui git)

I'd like to know what would you like to see exposed, what in the settings, etc. And on the other hand I might have a question about mirroring, etc.

For compile settings I already exposed the 2 important things I believe (which port to use). Other than that, we have :

I need to actually code the UE4 socket code :) right now it's only winsock, so won't work on other platforms.
Mirroring option. I can quickly add that for you, and you decide if you want to keep it or not.
Dual Context (allow different ImGui locally and remotely). This would be a more 'advanced' feature user might want, but do-able without too much problem.
Way for programmer to know if drawing remote or not. Right now, people can call NetImgui::IsDrawingRemote() to know the current status and decide to change ImGui content at runtime. How to expose this to programmer.
Where/how to distribute the netImgui server. I was also thinking of having a config file with the default local game/editor connection client configured. Will need to let user know about adding console too.
For commands user might need, there's no much I believe, maybe manually initiating the connection, but auto wait for connect on start seems fine too.
I select the proxy context 0 by default. In editor, should we associate PIE by default? Is there any point to expose proxy context switching in the UI?

I just quickly added the 'mirror' option that's accessible in the netImgui mainmenu bar.
One thing I realized is that your proxy context are not tied to particular delegate callbacks. They seem to each call all of the delegates? I am not sure I understand the purpose of having more than 1 context (in editor for example) when they are really tied to a particular Viewport either? In that case, then yes, it would make sens to create a netImgui context class that takes precedence over the regular proxy context, if there's only 1 context at a time. Would also allow to easily have dual Imgui display with distinct content (one locally and one remotely)
When I implemented ImGui at my previous company, we had a context per Unreal Viewport, with a per viewport settings object also associated. This allowed us to toggle rendering flags per viewport and such. Not sure how desirable or feasible this would be for your plugin.

I guess my name and link to the netImgui depot would be nice. Glad it worked without too much fuss.

👍

Certainly, I don't think the current integration is finalized yet. I'll be happy to continue providing support and anwser questions. You can reach me directly at my email address (see my netImgui git)

👍

For compile settings I already exposed the 2 important things I believe (which port to use).

Yes, that is great. I can also add them to the settings panel here, unless you think that something doesn't make sense to be exposed from some reaspon:

I was thinking to make a separate category and add properties like port numbers, whether to auto connect on play, whether to switch to PIE on play, maybe whether to mirror, etc.
Ad 7. I wouldn't worry about context switching at this moment.
On a different note, there is a slight delay as I want to fix that non-unity error right after I take the build. This is only a missing core header and some win wrappers, so I already did it, just need to prepare for quick update after the merge. But I should do that later today.

I just quickly added the 'mirror' option that's accessible in the netImgui mainmenu bar.

👍

One thing I realized is that your proxy context are not tied to particular delegate callbacks. They seem to each call all of the delegates?

Yes and no. Not sure if I fully understood the point. If I recall correctly, delegates used to be tied more closely to the proxy or at least module. But this was causing issues in code that was trying to access them before loading the module and during hot reloading. To free other code form caring about that I moved delegates to a separate container. But in a result, I have to find a right delegate for the world, which is not a huge deal.
I realise that there is a handful of delegates, but there is a reason behind:

In my previous company we agreed that depending on a task, static or object delegates might be more useful. So what the code does is to set the right context for a given world and then call delegates. Static (multi-context) delegates call the same code for every world, so if you have a menu bar that you would like to add to every context, etc. you can use that.
The world delegates are not the same, those are per-world delegates that are called only for that given the world to allow its object add data.
I wanted to be able to add headers and footers so I doubled number of multi-context delegates and for symmetry also world delegates. In result four delegates should be called for every world and in particular order:
setting the world context -> multi-context (static) early delegates -> world early delegates -> world update -> regular world delegates -> regular multi-context delegates... going to the next world context (if this is PIE)

I am not sure I understand the purpose of having more than 1 context (in editor for example) when they are really tied to a particular Viewport either?

Again not sure if I get it. The editor context was a dummy. But if you start a session with two or more PIE, then each world gets its own context. So in every viewport you will see the debug code for that world.

When I implemented ImGui at my previous company, we had a context per Unreal Viewport, with a per viewport settings object also associated. This allowed us to toggle rendering flags per viewport and such. Not sure how desirable or feasible this would be for your plugin.

But isn't there usually one viewport per game world? The context of dedicated server was indeed never visible. I expected to integrate the Remote ImGui at some point, but I never did. In my previous company we used to have one context for each world + one for editor and one remote client that was binding to all those context (there was no separate context for the remote client). The editor and dedicated server were the only ones that needed remote client and other contexts could be visible in their viewports and remote client. There was a flag to show or hide debug in the all game viewports. I don't see a problem to have that (now with the remote it will be an obligatory feature) or even have it per viewport. Do you think it is useful to have it per viewport?

In that case, then yes, it would make sens to create a netImgui context class that takes precedence over the regular proxy context, if there's only 1 context at a time. Would also allow to easily have dual Imgui display with distinct content (one locally and one remotely)

I myself don't particularly need separate contexts or dual debug. But surely it can be an option. Do you use that? I was actually thinking about using one context but I need to play with it a bit before discussing it further. But of course it is interesting to see how other people use it and what can be done.

For compile settings I already exposed the 2 important things I believe (which port to use).

Yes, that is great. I can also add them to the settings panel here, unless you think that something doesn't make sense to be exposed from some reaspon:

Yes the plugin settings makes perfect sens to store some options, like port number.

Again not sure if I get it. The editor context was a dummy. But if you start a session with two or more PIE, then each world gets its own context. So in every viewport you will see the debug code for that world.

Ok, so delegate are still tied indirectly to a certain Proxy context, because it checks the world. And you can have more than 1 active world outside the editor context. I'm not sure I fully understand when UE creates à new World, I thought the editor had 1 world and PIE had another one, so when viewing a model with model viewer, it doesn't creates a new World, just a new view, so your Imgui content is going to be the same for main editor windows and viewer window. Same for split screen. This was why we tied it per viewport, but I might be wrong on the behavior. I will leave the context switching option as is.

Again not sure if I get it. The editor context was a dummy. But if you start a session with two or more PIE, then each world gets its own context. So in every viewport you will see the debug code for that world.

Ah, you can have 2 PIE going on? Didn't know about that. So, you are saying the Editor proxy context is a dummy, do you not expect user to be able to use ImGui inside the editor, normally?

I myself don't particularly need separate contexts or dual debug. But surely it can be an option. Do you use that?

I have no difficulty imagining user wanting full debug menu in the remote connection, but some basic things (like memory use, FPS, and other stats) locally.

And one of the reasons why I'm keeping it away from viewport is that it is easier to plug and play which.

Per viewport might complicate things a bit and not sure how easy it is to achieve through plugin. I believe you can already receive a callback when a viewport is created/destroyed? But in any case, if there hasn't been any feedback from user wanting things more viewport bound, I don't see why you should change how things are done.

Ok, so delegate are...

OK, I think that we might be looking at this from a bit different perspectives and in result missing each other points.  I probably should update the readme file to better explain goals and design. There used to be more information there (at lest in my first prototypes) but in an attempt to reduce jibber-jabber, which I do, I might reduced it too far.
So, the primary goal was to add an easy immediate debug tool that you can call from any place in your game code  (well, most of). The tool is of course the ImGui framework and the integration tries to make it possibly invisible for the game code how it is managed. And the rest is dealing with innards like hot-reloading, inputs, viewports attachments, etc.
I feel that you look at this more like an editor extension, which is very fine and might need to be addressed. It just didn't get enough traction traction so far as the focus was to give each game world a debug context to draw. More about that later.

I thought the editor had 1 world and PIE had another one, so when viewing a model with model viewer, it doesn't creates a new World, just a new view.

I might be mistaken but I think it does create a world. Will need to check it.

so your Imgui content is going to be the same for main editor windows and viewer window

That is correct. But this is not something that cannot change and in fact is on the cards. Like before, I develop this slowly  and it just didn't get enough traction.

So, you are saying the Editor proxy context is a dummy, do you not expect user to be able to use ImGui inside the editor, normally?

Not exactly. In my previous office it was used as it was visible through the remote client. Here I didn't see it so far but still used it as a safety "fallback".
Now it looks like a good time to look at it.

I have no difficulty imagining user wanting full debug menu in the remote connection, but some basic things (like memory use, FPS, and other stats) locally.

Yes, I have no problem with that. In my last project, we used for that a custom non-ImGui overlay and ImGui for more interactive tools. We did have ImGui stats that you could turn on/off  but there was much more interactive tools for almost any system in the game. Even the remote client was bound to the same context that you could see in the game, so you could switch between the two as you saw fit or edit in one and record in the other. So I probably think about it differently and that is why some things might be missing for you. But now when it is an option, why not? I'd like to think how to do it though. Maybe the same delegates can be called twice with "Is Remote" flag on/off. Although I'd fear that unaware code might draw twice. Maybe a different callback for local context that are bound to remote? Although I would hope to be able to switch between remote and a local one invisibly... meaning that I would disconnect invisibly and not see it. Or maybe I should shift the paradigm, who knows ;)

Ah, you can have 2 PIE going on? Didn't know about that.

Yeah, that was the first thing that hit me after interaction. ImGui was one of the first thing I was doing after switching from CryEngine to UE so I was not aware about having multiple PIE etc.  I didn't think about any multi-context at the time so I thought that it will be as simple as creating context, dumping debug from game and make it visible...

Per viewport might complicate things a bit and not sure how easy it is to achieve through plugin. I believe you can already receive a callback when a viewport is created/destroyed? But in any case, if there hasn't been any feedback from user wanting things more viewport bound, I don't see why you should change how things are done.

TBH, It is not that I looked at this much but I would thing that per-viewport might be hard or impossible from plugin. Especially, if you want to be able to just drop the code, compile and run. The widget is attached to the viewport after create callback. But the per world was to also allow worlds without viewport (which I know was pointless without remote). And as explained later I wanted this to be world-synced. I mentioned that before but I'm thinking about refactoring it to allow context per widget and allow to decide what to do with that widget. So while implementing in viewport might not be an option from plugin it should be always possible to attach a widget. But even after that I will want to keep this workflow that I get automatically created context for every worlds that I'm having. And I think that it might also work with editor windows and that somebody is already trying that.

I feel that you look at this more like an editor extension, which is very fine and might need to be addressed.

I am not particularly looking at this as a editor extension, in fact, I expect it to be used mostly for in game debugging, but the multi windows Editor setup can require more handling than straight single context situation, so just trying to make sure I'm integrating netImgui to be in line with your design.

I thought the editor had 1 world and PIE had another one, so when viewing a model with model viewer, it doesn't creates a new World, just a new view.

I might be mistaken, but I think it does create a world. I will need to check it.

I detect no new proxy context in netImgui, when opening new Windows (model viewer, material editor, ...)

... but I wanted to allow immediate debug from world update what complicated it a bit

Yes, that's definitly different that previous approach have seen/done. It's nice that user can call ImGui  drawing from anywhere (on the gamethread), making it easy for programmer to have their debug content inplace. I've always relied on callbacks to draw Imgui UI.

But now when it is an option, why not? I'd like to think how to do it, though. Maybe the same delegates can be called twice with "Is Remote" flag on/off. Although I'd fear that unaware code might draw twice. Maybe a different callback for local context that are bound to remote? Although I would hope to be able to switch between the remote and a local one invisibly... meaning that I would disconnect invisibly and not see it. Or maybe I should shift the paradigm, who knows ;)

Currently, I prevent the selected proxy context from receiving the Imgui commands, and they get sent to netImgui instead. So no double drawing in a the same context. With your current multi proxy context, delegates already get called as many time as there are proxy context, so that behavior isn't changed either. Now, things could be done differently if you prefer, for example use 2 more parameters when adding a delegate, specifying if they support remote and if they do, should we still call them locally when connected. But this doesn't address the UObject::Tick drawing commands, which at the moment just happens to be sent to the last ImGui context assigned to ImGui (I think). That said, I think things can work nicely with current setup, with just the addition of letting programmer know if the delegate is drawing for remote content or not at the moment, and having dual output only possible with delegates, not UObject::Tick (or other gamethread functions).

I mentioned that before but I'm thinking about refactoring it to allow context per widget which you can use as you like.

How does that work for where things are rendered? You only support 1 context per viewport rendering, no? What happens with 2 widgets in same viewport? This doesn't affect netImgui, just curiosity on my part.

... more handling than straight single context situation...

I detect no new proxy context in netImgui, when opening new Windows (model viewer, material editor, ...)

Yes, because I suppress anything other than game worlds (with an exception for the one editor context). Like I said, by any means, it is not complete and I added what I mostly needed or found useful. That saying, there is no reason to add more and in fact some people will experimenting with that. There is quite a few things missing like blueprints integration.

so just trying to make sure I'm integrating netImgui to be in line with your design

Integration is fine. Undoubtedly, some things show up that might require handling now and some more things will be possible.

I've always relied on callbacks to draw Imgui UI.

Yes, we had some fierce discussion about that in my last studio. That saying, I would confirm that most of the time (significantly) relying on callbacks was the preferred and more convenient option. But on the other hand some things where only possible or easier during the world update and that is why I like to have it.

... that said, I think things can work nicely with current setup, with just the addition of letting programmer know if the delegate is drawing for remote content or not at the moment, and having dual output only possible with delegates, not UObject::Tick (or other gamethread functions).

Yes, I think it can. And I don't think there is any reason to hide it. I would be the hypocrite insisting on the features described above and claimed that something else is not important. And I can see the benefits that you presented, so all in all it can prove a nice addition. I'm sure something will emerge with time but I agree that delegates might be a way for that "lighter" debug view. I desperately want to finish a task before Friday, so not sure whether I merge it today, tomorrow or Saturday (depending how my task goes ;) but I will surely do it. It is not much work but I don't want to make it in rush. Sorry for the delay.

I desperately want to finish a task before Friday, so not sure whether I merge it today, tomorrow or Saturday (depending how my task goes ;) but I will surely do it. It is not much work but I don't want to make it in rush. Sorry for the delay.

Take your time, this is more or less a hobby :) In the meantime, I'll slowly implement the UE4 sockets support.

Added support of Dual Rendering and fixed NoUnity build warning. There was also a bit of refactoring to be less intrusive in the Proxy context class, and code in ThirdPartyBuildNetImgui.cpp has been split in multiple functions for clarity.

Programmer now can know know if  current Dear ImGui drawing is for local or remote destination. In the Screenshot, it can be seen at the end of each delegate's section (with different text for game and netImgui server).
It was done adding these lines in the ImguiActor :
(The check IsRemoteConnected() only prevents displaying text when not connected, IsRemoteDrawing() works just fine without it)
if( FImGuiModule::Get().GetProperties().IsRemoteConnected() )
    ImGui::TextUnformatted(FImGuiModule::Get().GetProperties().IsRemoteDrawing() ? "Drawing: Remote" : "Drawing: Local");

It will be up to you to decide how to configure/expose these various options (dual display, remoteconnected, remotedrawing, establish connection). I did a base implementation that I think is satisfactory, but feel free to change anything to your own prefererences.

With this latest checkin, netImgui integration is now feature complete. I am using UE4 socket code, so every platform UE ship to, will be supported. Only thing left will be fixing issue that may arise.
I also also made sure the no unity build build work by disabling it on the entire engine (took 5hrs+ on my laptop :p ). It compiled fine minus some unrelated errors in GteGenerateMeshUV.
The rest will be up to you to decide how to expose settings/features and shuffle things around to fit how you'd like things to work. I'll be happy to help some more and offer explanations.
If you prefer, you might be able to create a new 'netImgui Integration' branch, and I could try to create a pull request to it, instead of the master branch. Up to you.

With this latest checkin, netImgui integration is now feature complete. I am using UE4 socket code, so every platform UE ship to, will be supported. Only thing left will be fixing issue that may arise.

👍

I also also made sure the no unity build build work by disabling it on the entire engine (took 5hrs+ on my laptop :p ). It compiled fine minus some unrelated errors in GteGenerateMeshUV.

OMG. You compile the whole engine like this? If you want to add something later, you can always let me know and I can do it. It is fairly quick check for me and I will probably do it anyway. Still worth reminding me so I know and won't forget.

The rest will be up to you to decide how to expose settings/features and shuffle things around to fit how you'd like things to work. I'll be happy to help some more and offer explanations.

Yes, I will try play with this. I have already some ideas how I want to expose some things, so I will play with it and let you know. I might ask for opinion to make sure that it is also with a spirit of your ideas or that we can construct a compromise.

If you prefer, you might be able to create a new 'netImgui Integration' branch, and I could try to create a pull request to it, instead of the master branch. Up to you.

No need, turns out it was pretty easy to do. All I had to do was creating a new net_imgui branch and then modify this request to merge there. I'm not that familiar with GitHub but that was pretty straightforward. So this is already merged to net_imgui and soon I will merge that to master. The only downside is that I don't see you yet in contributors list but that apparently will be fixed after merging that new branch to master.

OMG. You compile the whole engine like this? If you want to add something later, you can always let me know and I can do it. It is fairly quick check for me and I will probably do it anyway. Still worth reminding me so I know and won't forget.

Well, I usually didn't but since I didn't have the issue you had, and thought it was without unity build, I did that as a last check. Didn't expect it to end up being 3x longuer than with unity. I didn't disabled PCH though, and I believe I am 1 UE version ahead.

No need, turns out it was pretty easy. All I had to do was to create a new net_imgui branch ...

👍
On my side, I might create a new barebone plugin to add netImgui + Dear ImGui for a very simple integration example, with no local display support. Should be a good starting point for people with their own Dear ImGui integration wanting remote connection, and with your plugin for a more in-depth demosntration.

Well, I usually didn't but since I didn't have the issue you had, and thought it was without unity build, I did that as a last check.

I can always do that. For the most of the time I have my testing project linked to a binary engine version, so when I disable unity it only affects that project. It is a small project, so it takes seconds/minutes rather than hours. I've never tried to compile it without unity with an engine that I've built from source code. As I said, it can be always raised to remind me to test it.

On my side, I might create a new barebone plugin to add netImgui + Dear ImGui for a very simple integration example, with no local display support. Should be a good starting point for people with their own Dear ImGui integration wanting remote connection, and with your plugin for a more in-depth demonstration.

👍

I'm looking at merging that to the master but unfortunately I'm blocked by a bunch of crashes when exiting from editor.
I cannot get consistently the same call-stack but one problem seemed to be with NetImgui::Shutdown();  and proxy stepping on each other toe when releasing resources. It doesn't happen when I move NetImgui::Shutdown(); after destruction of the manager.
Another issue is a bit more consistent but the call-stack is cryptic to me. I might need to try engine with full source code, because right now when running DebugGame Editor I simply get this:
>	ntdll.dll!00007fff103191b2()	Unknown
 	ntdll.dll!00007fff103215e2()	Unknown
 	ntdll.dll!00007fff103218ea()	Unknown
 	ntdll.dll!00007fff1032a8a9()	Unknown
 	ntdll.dll!00007fff102626ee()	Unknown
 	ntdll.dll!00007fff10260790()	Unknown
 	ntdll.dll!00007fff1025fb91()	Unknown
 	ntdll.dll!00007fff1026a7e7()	Unknown
 	ntdll.dll!00007fff1026a76e()	Unknown
 	ntdll.dll!00007fff102c62a9()	Unknown
 	ntdll.dll!00007fff1025fb91()	Unknown
 	ucrtbase.dll!00007fff0d5214cb()	Unknown
 	UE4Editor-SSL.dll!00007ffeb0d2b099()	Unknown
 	UE4Editor-SSL.dll!00007ffeb0d01fdf()	Unknown
 	UE4Editor-SSL.dll!00007ffeb0d01d74()	Unknown
 	UE4Editor-SSL.dll!00007ffeb0d02104()	Unknown
 	UE4Editor-SSL.dll!00007ffeb0d01ec0()	Unknown
 	UE4Editor-SSL.dll!00007ffeb0d02104()	Unknown
 	UE4Editor-SSL.dll!00007ffeb0d01ec0()	Unknown
 	UE4Editor-SSL.dll!00007ffeb0d01ccf()	Unknown
 	UE4Editor-SSL.dll!00007ffeb0c5e580()	Unknown
 	UE4Editor-SSL.dll!00007ffeb0c5fa23()	Unknown
 	UE4Editor-Core.dll!00007ffec5e054d5()	Unknown
 	UE4Editor-Win64-DebugGame.exe!00007ff714d7af37()	Unknown
 	UE4Editor-Win64-DebugGame.exe!00007ff714d7bb07()	Unknown
 	UE4Editor-Win64-DebugGame.exe!00007ff714d8e3a0()	Unknown
 	UE4Editor-Win64-DebugGame.exe!00007ff714d9146a()	Unknown
 	kernel32.dll!00007fff0f577bd4()	Unknown
 	ntdll.dll!00007fff1028ce51()	Unknown

Do you get the same crashes when exiting editor?

I am not seing any crash under UE4.25.3 while closing the editor and connected to netImgui.
However, I did get a crash just now while closing the editor, and having connected/disconnected from netImgui before closing. I had this callstack, which seems to point to font release issue. I will take a look later.
>	[Inline Frame] UE4Editor-ImGui.dll!ImGui::MemFree(void * ptr) Line 3055	C++
 	UE4Editor-ImGui.dll!ImFontAtlas::ClearTexData() Line 1543	C++
 	[Inline Frame] UE4Editor-ImGui.dll!ImFontAtlas::Clear() Line 1556	C++
 	UE4Editor-ImGui.dll!ImFontAtlas::~ImFontAtlas() Line 1508	C++
 	UE4Editor-ImGui.dll!FImGuiContextManager::~FImGuiContextManager() Line 84	C++
 	UE4Editor-ImGui.dll!FImGuiModuleManager::~FImGuiModuleManager() Line 75	C++
 	UE4Editor-ImGui.dll!FImGuiModule::ShutdownModule() Line 140	C++
 	[Inline Frame] UE4Editor-Core.dll!FModuleManager::UnloadModule(const FName) Line 582	C++
 	UE4Editor-Core.dll!FModuleManager::UnloadModulesAtShutdown() Line 712	C++

Yes, that will be probably the first issue that I described. Moving NetImgui::Shutdown(); after the manager dtor seems to prevent net and proxy don't stomping on each other and fixes the issue - I need to confirm that but it seems to be the case. Anyway, that should be hopefully easy to fix.
But even if I do that or even if I do not release the manager at all to make sure that they don't try to free the same resources, I still get this crash with that call-stack. I will test later the older revision using win socket.
I used 4.25.1 but I have other engines versions to compare later.
Oh, actually. If you got that crash as yo uposted, you may try what I did. Either moving net shutdown after the manager or not releasing the manager at all (that should be fine as it just leaks). That is how I noticed the second crash.

I will take a look during the weekend and try to fix it.

Found the problem and fixing it. Will spend the weekend to finish it and make it clean. Need to properly wait for socket to end connection before existing the module shutdown.


::exists() method is unsafe ?

I don't understand why this method is unsafe and there is no documentation for it on https://docs.rs.

The exists method is only unsafe because it might have to load the library itself, which calls the win32 api function LoadLibraryExW. I don't know if there can be any guarantee that a call to this function is safe, so I decided to err on the side of caution.
The function doesn't use the return value from LoadLibraryExW so if that counts as safe then I could remove the unsafe keyword in the next version.

I think it's safe to assume that, so long as LoadLibraryExW itself is being used correctly (e.g. with a proper null-terminated string), then it is sound.
Calling LoadLibraryExW may, as a side-effect, run arbitrary code (such as the DllMain) which could cause soundness issues. But IMO, this lives in the same realm as "Writing to /dev/mem can be used to SIGSEGV a safe rust program", and is, in practice, unlikely to lead to problems.
As such, I do think that it would be OK to remove the unsafe keyword there.


Draft: Update: compose/pipe

The overloads need to be in the opposite order, with the final fallback at the bottom

Does the order matter when the signatures are all different?  Do you have an example of something that didn't work before that works now?

@lax4mike Just trying to keep consistent with the order based on arity, since we're having to do that for the curried functions as well

Deciding to close this. After checking on some other utility libraries, particularly lodash, they have highest arity defined first, which is how it currently is in ramda. So I've decided to keep it that way


Unable to join Slack chat

Question

In various places (website, docs, GitHub, etc), there are references to joining Slack for getting help, but unless I have an @pingcap.com email address, I cannot join.  If we have general questions or need help, should we just post here?

https://tikv.org/community/community/
https://join.slack.com/t/tikv-wg/shared_invite/enQtNTUyODE4ODU2MzI0LWVlMWMzMDkyNWE5ZjY1ODAzMWUwZGVhNGNhYTc3MzJhYWE0Y2FjYjliYzY1OWJlYTc4OWVjZWM1NDkwN2QxNDE
https://tikv.org/chat
https://github.com/tikv/tikv/blob/master/README.md?plain=1#L3

Screenshot
https://tikv.org/chat redirects to this page:

/cc @zhangyangyu  PTAL

@kmott you can use your google account or apple account if you have.

@kmott you can use your google account or apple account if you have.

Oh, I guess that means I can't signup with a non-Google/Apple email?

Hi @kmott ,thank you for bringing this to our attention, and I’m sorry for the inconvenience caused by the incorrect Slack links. The correct link to join our Slack workspace is:
https://slack.tidb.io/invite?team=tikv-wg&channel=general
You’re welcome to join us there for discussions or to get help! In the meantime, if you’d like to discuss a specific feature or report a bug, you’re also welcome to open a GitHub issue.
We’ve identified the outdated links in the places you mentioned (website, docs, GitHub, etc.), and we’ll update them as soon as possible to avoid further confusion.
Thanks again for pointing this out.

Awesome, I was able to get in.  Thank you so much!!


Memory issue when training the transformer model

Hi,
I trained the transformer model with base architecture. The training process run normally when seed 1  was used. But when I used the other seed like 2, 3..., I encountered the issue of out of memory on the backward step of two certain consecutive batches (torch.Size([67, 88, 512]) and torch.Size([36, 152, 512])). Input shape is Time x Batch x Channel.
Actually when I tried to debug it, I found the same batch size (torch.Size([67, 88, 512]) in the training process of seed 1 transformer model. So, I want to ask why the transformer model of seed 1 can work but the other seeds meet the memory issue?
Besides, these two consecutive batches occurs two error types. the former occurs the "CUDA error: out of memory" while the latter occurs the "cuda runtime error (2) : out of memory at /opt/conda/conda-bld/pytorch_1532581333611/work/aten/src/THC/generic/THCTensorMathPairwise.cu:81". what's the difference between these two errors?

Your batch size is probably right on the edge of what can fit on your GPU. This means that slight variations in the batch ordering can cause OOM. What model size/batch size/GPU are you using? Try reducing --max-tokens.

@GitHub-v7


Fixes a memory leak issue caused by Adhearsion::Translator::Asterisk

Ensure the components are deregistered from Adhearsion::Translator::Asterisk
once the call is ended. For more details see
https://github.com/adhearsion/punchblock/pull/250

@benlangfeld prepared the memory leak fix for adhearsion 3

Thanks @serioja90. Unfortunately it looks like the tests are failing for an unrelated reason, and we'll need to fix that before we can merge any more changes to develop.


Unsupervised k-means

Hello, I am interested on the unsupervised k-means clustering, but I can't get to find where you are using it. I've explored the code and observed that the main.cpp uses only the Kd-tree search and Kalman filter, but there isn't a single call to a kmeans function. Also it looks like featureDetection.cpp is for image processing and not for point clouds.
Where can i find the unsupervised kmeans implementation you talk about on the ReadMe?
Thank you for your help.

Hi @tberrielITA ,
K-means is not used in the case of 3D point clouds. The default code flow is setup for 3D point clouds and therefore k-means isn't used while the code is available in the repo (featureDetection.cpp) if someone needs to obtain similar results on a 2D input.
In the 3D point-cloud (default) case, instead of k-means, Euclidean cluster extraction is performed in these lines using PCL:
https://github.com/praveen-palanisamy/multiple-object-tracking-lidar/blob/d71ff08c2eda1be00395468a4243c011d1d98729/src/main.cpp#L409-L410
Basically, after creating the Kd-tree,
For every point , the following steps are performed:

Add  to the current queue Q;

For every point  Q:

Search for the set  of point neighbors of  in a sphere with radius ;

For every neighbor , check if the point has already been processed, and if not add it to Q;

When the list of all points in Q has been processed, add Q to the list of clusters C, and reset Q to an empty list

the algorithm terminates when all points  have been processed and are now part of the list of point clusters.
Hope that helps. I will update the README to make it clear.

Closing this since the question was addressed. Please feel free to re-open if you have a follow-up or open a new issue.


Add flag for auto-jump to first occurrence

I use a large scroll offset to keep my cursor vertically centered. As a side effect of this, and because leap moves the cursor to the first match automatically, my visual lock on my jump target gets broken on the second character I enter after s, which re-introduces that Hop/Easymotion mental pause that leap would otherwise solve for me.
Is there any way that a new config parameter could be added to turn that initial jump off?

Is there any way that a new config parameter could be added to turn that initial jump off?

We're doing something better: by adding/removing elements to/from labels and safe_labels, you can fine-tune the autojump behaviour. If you want to disable it completely, simply set safe_labels = {}.
That said, your problem is the unwanted scrolling before exiting the plugin, not auto-jumping itself. So simply set an autocommands to set scrolloff to 0, and restore it when exiting from Leap:
vim.api.nvim_create_autocmd('User', { pattern = 'LeapEnter',
  callback = function ()
    vim.g.saved_scrolloff = vim.o.scrolloff
    vim.o.scrolloff = 0
 end })

vim.api.nvim_create_autocmd('User', { pattern = 'LeapLeave',
  callback = function () vim.o.scrolloff = vim.g.saved_scrolloff end
})

Oh, that's much better than what I had in mind! Thanks for the suggestion!


Add Foreground/Background handlers for ToastActivation

Added foreground/background handling for ToastNotifications.
includes activation unit tests
rename GetRawNotificationEventArgs -> GetNotificationEventArgs with helper function to retrieve args from COM static store
Add ToastActivation to AppLifecycle.idl

Are the build pipelines passing? (besides arm64 which is already broken in the target branch)

Are the build pipelines passing? (besides arm64 which is already broken in the target branch)

This is targeting the old feature branch which doesn't have the pipelines running.

/azp run


Basic validation for public keys

Describe the feature
Do basic validation for loading public keys.
Implementation ideas
Currently the public keys are loaded into a internal dictonary called key_store as string in DER format. This is true for both the public keys that are coming from the root.json, as well as the pre-provisoned root public key. Validating them as soon as they are loaded will result in earlier error messages, should they have an invalid format, instead of the error messages occuring only when the actual signature validation is done. This also provides more precise error messages.
For a more concrete implementation idea: instead of storing the public keys as strings, we should store them as ecdsa.VerifyingKeys.

fixed with #90


Dots brush failing FBX export

From Zandy#1492
https://discord.com/channels/783806589991780412/804677406572150814/827538610010062848
All the experimentals were replaced but the dots brush was the culprit.  It will not export the dots brush to fbx or sketchfab/poly.  As soon as I deleted them it worked.
Mike's thoughts:
possible that guid has changed in OB, as dots created in TB are fine for export.

I grabbed a version of Zandy's sketch that had dots in it.

It wouldn't open in non-experimental Open Brush. It should have -- strokes using unknown brushes should load but be invisible. Didn't look at that yet.
Unzipped the .tilt into the directory broken.tilt for easier inspection (Open Brush can open up directories as well as zip files)
Inspection with tbt showed that it had some KeijiroTube and Wind strokes in it

from tiltbrush.tilt import Tilt
from tbdata.brush_lookup import BrushLookup
t = Tilt('broken.tilt')
lookup = BrushLookup.get()
for guid in t.metadata['BrushIndex']:
  print(guid, lookup.guid_to_experimental[guid], lookup.guid_to_name[guid])

Removed Wind and KeijiroTube and now it loads into non-experimental OB. But it doesn't export:

IndexOutOfRangeException: Index was outside the bounds of the array.
TiltBrush.MathUtils+<LinearResampleCurve>d__25.MoveNext () (at Assets/Scripts/Util/MathUtils.cs:897)
TiltBrush.ExportUtils+ExportBrush.AppendTimestamps (TiltBrush.Stroke stroke, System.Int32 numVerts, System.Collections.Generic.List`1[T] timestamps) (at Assets/Scripts/Export/ExportUtils.cs:177)
TiltBrush.ExportUtils+ExportBrush+<ToGeometryBatches>d__8.MoveNext () (at Assets/Scripts/Export/ExportUtils.cs:205)
System.Linq.Enumerable+<SelectIterator>d__154`2[TSource,TResult].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
TiltBrush.ExportCollector.BuildGroupPayload (TiltBrush.ExportUtils+SceneStatePayload payload, TiltBrush.ExportUtils+ExportGroup exportGroup) (at Assets/Scripts/Export/ExportCollector.cs:248)
TiltBrush.ExportCollector.BuildBrushMeshesFromExportCanvas (TiltBrush.ExportUtils+SceneStatePayload payload) (at Assets/Scripts/Export/ExportCollector.cs:234)
TiltBrush.ExportCollector.BuildBrushMeshes (TiltBrush.ExportUtils+SceneStatePayload payload) (at Assets/Scripts/Export/ExportCollector.cs:229)
TiltBrush.ExportCollector.GetExportPayload (TiltBrush.AxisConvention axes, System.Boolean includeLocalMediaContent, System.String temporaryDirectory) (at Assets/Scripts/Export/ExportCollector.cs:52)
TiltBrush.ExportUsd.ExportPayload (System.String outputFile) (at Assets/Scripts/Export/ExportUsd.cs:699)
TiltBrush.Export.ExportScene () (at Assets/Scripts/Export/Export.cs:147)
TiltBrush.SketchControlsScript+<>c.<ExportCoroutine>b__310_0 () (at Assets/Scripts/SketchControlsScript.cs:3361)
TiltBrush.OverlayManager+<AsCoroutine>d__42.MoveNext () (at Assets/Scripts/OverlayManager.cs:394)
TiltBrush.OverlayManager+<RunInCompositor>d__36.MoveNext () (at Assets/Scripts/OverlayManager.cs:222)
UnityEngine.Debug:LogException(Exception)
TiltBrush.<RunInCompositor>d__36:MoveNext() (at Assets/Scripts/OverlayManager.cs:226)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)


missing contribution decision flowcharts

add rendered contribution flowcharts to documentation
https://github.com/nuxt/framework/pull/5922

@danielroe Can you assign this to me please?


Q: How to replace createSearchParams

In https://github.com/nanostores/router/blob/main/CHANGELOG.md?plain=1#L10 I read that

Removed createSearchParams in favor of route.search of normal router.

I have this Astro App which uses export const $searchParams = createSearchParams() to create a store that is stored in the URL. https://github.com/osmberlin/www.osm-verkehrswende.org/blob/main/src/components/BaseMap/store.ts#L23
How would I migrate that to route.search? I am not using the router in Astro, I am looking for something like an atom, but in the URL.

There are two options:

Copy createSearchParams() implementation to your project. It is very simple store, you don’t to need some official library for that. Or you can create a support this library.
Use normal createRouter() (you can use single route if you don’t need pathname routing) and read value.search of the router store.

Thanks for the hints @ai.
I tried suggestion (2) today but that is not ideal for this use case because it requires to specify the path of each route which uses my map component because the component needs to use openPage($router, 'NAME', undefined, { ...newParams }). I really just want to use the search params just like any other store without thinking about the URL and path.
So I went with suggestion (1) and copied the version 0.13.0 code in https://github.com/osmberlin/www.osm-verkehrswende.org/commit/3d2e27b4fa7f427e3f72af41561d025857ec57c5 (with some minor TS adjustments).
It looks like this works fine.
I with there was something like https://github.com/47ng/nuqs for Astro/Plain React which work great in this use case where one wants to use a global state but store it in the URL.


Don't redownload files by default

Executing the download command twice will redownload a model:
litgpt download --repo_id microsoft/phi-2

litgpt download --repo_id microsoft/phi-2

We could check for existing model files and not download in this case. Then, we could add a --force  option to redownload the model files in case where files were corrupted (basically as a shorthand for rm -rf checkpoints/... & litgpt download)

This is feasible now that we get the list of bins or safetensors before running the download: https://github.com/Lightning-AI/litgpt/blob/main/litgpt/scripts/download.py#L54
What would you do if?:

The bins/safetensors exists but the lit_model.pth doesn't
The bins/safetensors do not exist but the lit_model.pth does

The bins/safetensors exists but the lit_model.pth doesn't

I'd say

Don't download but just print a message: "Skipping download. Files already exist. Override with --force_download true"
Then run the conversion

The bins/safetensors do not exist but the lit_model.pth does

Here, I'd say

Download the files
Don't do the conversion perhaps. Maybe print a message like "Downloaded files but skipping conversion since lit_model.pth already exists. To force the conversion, run lit convert --checkpoint_dir <this dir>.

Sounds good to me!


fix(config)!: use HOST and PORT env variables for cloud services

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
510

Relevant Lines:
510

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
510

Relevant Lines:
510

💛  - Coveralls


Migrate to Poetry; fix package structure

[ ] add dynamic version from one source (from VCS tags)

Some useful info to understand all things better
Including config files to the package

Unlike setuptools poetry bundles automatically all files within your package folder into your package

It means our config.yml files are already included by default. I test it locally by run "poetry build" and unarchive the dist files. it works
We should not use data_files anymore
https://github.com/cycodehq-public/cycode-cli/blob/a0ca07f91cef2ea333f21c0d58dd58f32f39c0b4/setup.py#L18
why:

deprecated. ref: https://setuptools.pypa.io/en/latest/references/keywords.html

relates only to setuptools

not recommended at all (include_package_data should be used instead)

We don't use setuptools anymore
Poetry core fully covers our requirements. It automatically understand type of README, fetch the content from the file and so on
We don't distribute 2 packages inside one PyPI project
Previously we package contained 2 packages: cli, cyclient. This is could lead to problems. Let's take a look how our package installed in the system (pip install cycode && pip uninstall cycode):

as we can see it creates 2 folders in the global system space for all Python packages. to be more specific to "site-packages" folder. And it's named CLI

The name doesn't relate to cycode at all. Any other packages named "cli" will break something due to conflicts in the file system :(
also, I want to mention, that if we want to provide a separate cyclient package we should distribute it separately on PyPi (in case we want to provide opensource lib to communicate with out backend from a code. I mean without CLI)
That's how the tree looks now after restructure

Some useful info to understand all things better
Including config files to the package

Unlike setuptools poetry bundles automatically all files within your package folder into your package

It means our config.yml files are already included by default. I test it locally by run "poetry build" and unarchive the dist files. it works
We should not use data_files anymore
https://github.com/cycodehq-public/cycode-cli/blob/a0ca07f91cef2ea333f21c0d58dd58f32f39c0b4/setup.py#L18
why:

deprecated. ref: https://setuptools.pypa.io/en/latest/references/keywords.html

relates only to setuptools

not recommended at all (include_package_data should be used instead)

We don't use setuptools anymore
Poetry core fully covers our requirements. It automatically understand type of README, fetch the content from the file and so on
We don't distribute 2 packages inside one PyPI project
Previously we package contained 2 packages: cli, cyclient. This is could lead to problems. Let's take a look how our package installed in the system (pip install cycode && pip uninstall cycode):

as we can see it creates 2 folders in the global system space for all Python packages. to be more specific to "site-packages" folder. And it's named CLI

The name doesn't relate to cycode at all. Any other packages named "cli" will break something due to conflicts in the file system :(
also, I want to mention, that if we want to provide a separate cyclient package we should distribute it separately on PyPi (in case we want to provide opensource lib to communicate with out backend from a code. I mean without CLI)
That's how the tree looks now after restructure

Some useful info to understand all things better
Including config files to the package

Unlike setuptools poetry bundles automatically all files within your package folder into your package

It means our config.yml files are already included by default. I test it locally by run "poetry build" and unarchive the dist files. it works
We should not use data_files anymore
https://github.com/cycodehq-public/cycode-cli/blob/a0ca07f91cef2ea333f21c0d58dd58f32f39c0b4/setup.py#L18
why:

deprecated. ref: https://setuptools.pypa.io/en/latest/references/keywords.html

3. relates only to setuptools
4. not recommended at all ([include_package_data](https://setuptools.pypa.io/en/latest/userguide/datafiles.html) should be used instead)
We don't use setuptools anymore
Poetry core fully covers our requirements. It automatically understand type of README, fetch the content from the file and so on
Now we distribute 1 package inside of one PyPI project
Previously our PyPi project contained 2 packages: cli, cyclient. This could lead to problems. Let's take a look at how our package is installed in the system (pip install cycode && pip uninstall cycode):

as we can see it creates 2 folders in the **global system space** for all Python packages. to be more specific to "site-packages" folder. And it's named "cli"

The name doesn't relate to cycode at all. Any other packages named "cli" will break something due to conflicts in the file system :(
also, I want to mention, that if we want to provide a separate cyclient package we should distribute it separately on PyPi (in case we want to provide Open Source lib to communicate with our backend from a code. I mean without CLI)
That's how the tree looks now after restructuring

But it breaks imports. @MichalBor let me know if some of our projects uses CLI by importing it directly in the code instead of interacting with command line interface
Rework of versioning is coming soon. More details in the task

👑


trivy scan in azure devops pipeline step fails using latest version

I get this error:
2024-10-03T08:49:32Z	FATAL	Fatal error	image scan error: scan error: scan failed: failed analysis: analyze error: pipeline error: failed to analyze layer (sha256:756474215d2903298a97a89b17f234450ca3a7219cae4dd63800afe9b350052f): post analysis error: post analysis error: Unable to initialize the Java DB: Java DB update failed: OCI artifact error: failed to download Java DB from any source
We started having transient issues like this in the past 2 weeks. No sure what is causing this recurrently.
Please help. Thank you!

It happens in gitlab-ci too, so I don't think it's azure related

Encountering same error while scanning the image during the Bitbucket pipeline. The scan process fails due to an issue with the Java DB download.
2024-10-03T09:38:25Z	INFO	[javadb] Artifact successfully downloaded	repo="ghcr.io/aquasecurity/trivy-java-db:1"
2024-10-03T09:38:25Z	FATAL	Fatal error	image scan error: scan error: scan failed: failed analysis: analyze error: pipeline error: failed to analyze layer (sha256:3cbdda3454f9b320138463278e74da90d4bd37c2cca24159f759b52b5bfceb9c): post analysis error: post analysis error: Unable to initialize the Java DB: Java DB update failed: OCI artifact error: failed to download Java DB from any source

this error while scanning an image using the latest version of aquasec/trivy. However, when I use aquasec/trivy:0.55.0 , the scan works without any issues.

Same issue trying to run  trivy image --download-java-db-only in a docker image
4.253 2024-10-03T11:47:39Z  INFO  [javadb] Downloading Java DB...
13:48:03   4.253 2024-10-03T11:47:39Z  INFO  [javadb] Downloading artifact...  repo="ghcr.io/aquasecurity/trivy-java-db:1"
13:48:03   649.13 MiB / 649.13 MiB [------------------------------------------------] 100.00% 31.49 MiB p/s 21s2024-10-03T11:48:00Z  INFO  [javadb] Artifact successfully downloaded  repo="ghcr.io/aquasecurity/trivy-java-db:1"
13:48:03   25.58 2024-10-03T11:48:00Z  FATAL  Fatal error  init error: DB error: Java DB error: OCI artifact error: failed to download Java DB from any source

trivy image --download-db-only works just fine

Sorry for inconvenience. We'll cut v0.56.1 soon.
https://github.com/aquasecurity/trivy/pull/7642


Error in all pools fetching

There is a syntax error in formatting when fetching all pools:
The problem line in pools.ts

Error:
TypeError: Cannot read properties of undefined (reading 'pool_kind')

@max-mainnet

I install a SDK package and start using -> mport all code from the package and run sdk.fetchAllPools()
I call getRefPools(1) before other Promises -> add some logs in a function -> built code with a build command (correct it to save only a esm format). Run with node dist/ref-sdk.esm.js.

getRefPools() works fine

add some logs in a function
Seems like it didn't get any pools from rpc.  Could you please post the function you have modified ?

fetchAllPools()

https://github.com/ref-finance/ref-sdk/commit/960f1a8f07a96a9278e33c404212b0d2b5233a4b

fixed in new version 1.0.2


corrected notation of Checkmk

The correct notation is now Checkmk instead of CheckMK.

I additionally added a masking for passwords in the config page for the datasource.

Is there any update on this case?


Some objects not cleaned up when closing the scene

Overview
When running a project in the editor using Holographic Simulation, on stopping the project it throws an error (see below). I can't tell if this error has any residual effect, but Holographic Simulation is extremely buggy for me (slow to close, freezes, crashes sometimes) so possible it is related.
Expected Behavior
No errors.
Actual Behavior
Error:
Some objects were not cleaned up when closing the scene. (Did you spawn new GameObjects from OnDestroy?)
The following scene GameObjects were found:
Spatial Awareness System
WindowsMixedRealitySpatialMeshObserver
Steps to reproduce
(Links to sample github project preferred)
This happens to me with a, more or less, default project, using latest vNext code.
Unity Editor Version
2018.3.6f1
Mixed Reality Toolkit Release Version
vNext

this looks like something we fixed in one of our branches. I will confirm that it is fixed in the current mrtk_development branch.
Thanks!

identified at least one likely cause
            if (observedObjectParent != null)
            {
                observedObjectParent.transform.DetachChildren();
            }

the above is missing Destroy(observedObjctParent)

it looks as if the Spatial Awareness System game object should be getting cleaned up. will investigate asap.
Thanks again for the report!

@davidkline-ms  fixed?

I haven't seen this particular error in a while - feel free to reopen if this is still happening


Marks node as offline if i dont put in a port when its a legit a node.example.com no port its in https? how can i get around this without using ip?

titile

Fixed it


[SPARK-47693][TESTS][FOLLOWUP] Reduce CollationBenchmarks time

What changes were proposed in this pull request?

This PR reduces  CollationBenchmarks cost by decreasing the times for each collation operation
Why are the changes needed?

I have observed that it takes more than 3 hours for these benchmarks to complete.
Does this PR introduce any user-facing change?
no
How was this patch tested?

manually
Was this patch authored or co-authored using generative AI tooling?

no

Since this is a simple reduction of iteration, let me merge this first to unblock @yaooqinn 's ANSI full benchmark.

#46266

I manually verify the compilation and run.
$ build/sbt "sql/Test/runMain org.apache.spark.sql.execution.benchmark.CollationBenchmark"
...
[info] running (fork) org.apache.spark.sql.execution.benchmark.CollationBenchmark
[error] WARNING: Using incubator modules: jdk.incubator.vector
[info] Running benchmark: collation unit benchmarks - equalsFunction
[info]   Running case: UTF8_BINARY_LCASE
[info]   Stopped after 2 iterations, 2540 ms
[info]   Running case: UNICODE
[info]   Stopped after 2 iterations, 3297 ms
[info]   Running case: UTF8_BINARY
[info]   Stopped after 2 iterations, 3162 ms
[info]   Running case: UNICODE_CI
...

Merged to master for Apache Spark 4.0.0.
Please let us know if we need to increase the iteration back for some reason, @nikolamand-db


[WebUI] Accept access_token route parameter

Fixes #164
This allows the host app, which can persist refresh tokens, to
pass the access token directly into the WebUI. This gets rid of the
need to do limited-input OAuth.
The host C# app performs the usual OAuth workflow as shown in the example:
https://github.com/googlesamples/oauth-apps-for-windows
and stores the refresh token, which can be used to acquire new access tokens
in the future (after app or system restart).

@antonkast-google Please review. Thanks.

@antonkast-google

I was looking for token persistence but didn't see it. Is that coming next?

The persistence is done in the native layer. I'm currently checking the code into the gazebutton branch of my fork of the Talk37 repo, see:
https://github.com/caisq/Talk37/blob/gazebuttons/app/WebWatcher/WebWatcher/AuthWindow.xaml.cs#L297


Installing Additional Plugins with RMQ Bosh release

Hi!
At current moment i have a need to add some additional community plugins to existing RabbitMQ BOSH installation. Is there any simple way to add external plugins without reworking existing release and switching on develop version?
Thanks!

Hi.  We have no intentions of supporting the community plugins in the short term.  We suggest that you create your own bosh release which includes a package which contains the community plugins.  Then you can define a job to copy these plugins into the rabbitmq plugins directory.  You can then then co-locate the job with the existing within the existing rabbitmq release, and run the job for every rabbitmq node.
Thanks.


Retain consistent Widget behavior in ScrollView

I have noticed that a widget with computed size, such as a Divider appears as expected usually, but disappears when placed inside of a ScrollView (e.g. SingleChildScrollView). This is demonstrated here.
Note that the intended behavior is for all tracks to move in unison, so replacing the ScrollView with a ListView doesn't work.
A working solution is to use IntrinsicWidth in L62, as follows:
    child: IntrinsicWidth(child: takesContainer),

However, the documentation for IntrinsicWidth clearly states:
| Avoid using it where possible.
So my request (unless there is a better solution that I currently do not understand) is:

Retain the layout behavior of widgets embedded inside of a ScrollView (that is, the widget looks and behaves the same, just that now it's scrollable... plus/minus some wrapping behavior)
Given that the Dividers already correctly compute their size (when not placed inside of a Scroll Widget), at least given an option in the SingleChildScrollView constructor to achieve automatic size computation, without having to add an expensive Intrinsic[Width|Height] widget in between.

For more details, see internal link.

Thanks for the report. Using the code sample, I see below for both options:

For more details, see internal link.

I am unable to access it since it seems to be internal to the team.
Labeling this as proposal for the framework.


Error

Description
What steps will reproduce the problem?

What is the expected output? What do you see instead?
Please provide any additional information below
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/projects.py", line 233, in _create_project
self.open_project(path=path)
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/projects.py", line 269, in open_project
self.restart_consoles()
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/projects.py", line 386, in restart_consoles
self.main.ipyconsole.restart()
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 1286, in restart
self.create_new_client(give_focus=False)
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 977, in create_new_client
self.connect_client_to_kernel(client)
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 998, in connect_client_to_kernel
stderr_file)
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 1386, in create_kernel_manager_and_kernel_client
stderr = codecs.open(stderr_file, 'w', encoding='utf-8')
File "/Users/RaviTeja/anaconda/lib/python2.7/codecs.py", line 896, in open
file = builtin.open(filename, mode, buffering)
IOError: [Errno 2] No such file or directory: u'/var/folders/0s/47z92ltn01b9rck276wy6r100000gn/T/spyder-RaviTeja/kernel-1fda197fb976.stderr'
Traceback (most recent call last):
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/projects.py", line 229, in create_new_project
self.restart_consoles()
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/projects.py", line 386, in restart_consoles
self.main.ipyconsole.restart()
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 1286, in restart
self.create_new_client(give_focus=False)
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 977, in create_new_client
self.connect_client_to_kernel(client)
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 998, in connect_client_to_kernel
stderr_file)
File "/Users/RaviTeja/anaconda/lib/python2.7/site-packages/spyder/plugins/ipythonconsole.py", line 1386, in create_kernel_manager_and_kernel_client
stderr = codecs.open(stderr_file, 'w', encoding='utf-8')
File "/Users/RaviTeja/anaconda/lib/python2.7/codecs.py", line 896, in open
file = builtin.open(filename, mode, buffering)
IOError: [Errno 2] No such file or directory: u'/var/folders/0s/47z92ltn01b9rck276wy6r100000gn/T/spyder-RaviTeja/kernel-9e95e84e9000.stderr'
Version and main components

Spyder Version: 3.2.1
Python Version: 2.7.13
Qt Versions: 5.6.2, PyQt5 5.6 on Darwin

Dependencies
pyflakes >=0.5.0  :  1.5.0 (OK)
pycodestyle >=2.3 :  2.3.1 (OK)
pygments >=2.0    :  2.2.0 (OK)
pandas >=0.13.1   :  0.20.1 (OK)
numpy >=1.7       :  1.12.1 (OK)
sphinx >=0.6.6    :  1.5.6 (OK)
rope >=0.9.4      :  0.9.4 (OK)
jedi >=0.9.0      :  0.10.2 (OK)
psutil >=0.3      :  5.2.2 (OK)
nbconvert >=4.0   :  5.1.1 (OK)
sympy >=0.7.3     :  1.0 (OK)
cython >=0.21     :  0.25.2 (OK)
qtconsole >=4.2.0 :  4.3.0 (OK)
IPython >=4.0;<6.0:  5.3.0 (OK)
pylint >=0.25     :  1.6.4 (OK)

This was fixed in Spyder 3.2.2, please update.