The cursor jumps to the end of the line and immediately returns to the correct position when typing in a Git Bash profile

Environment
Windows build number: Microsoft Windows [Version 10.0.18362.836]
Windows Terminal version (if applicable): 1.0.1401.0

Any other software?
- Git for Windows

Steps to reproduce
Open a Git Bash tab. My profile looks like this:
{
	"guid": "{7f9476f7-58ca-491b-b101-43b38738ebcb}",
	"name" : "Git Bash",
	"tabTitle": "Git Bash",
	"commandline" : "\"%ProgramFiles%\\Git\\usr\\bin\\bash.exe\" -i -l",
	"hidden": false,
	"startingDirectory" : "C:\\Git",
	"closeOnExit" : true,
	"colorScheme" : "Solarized Dark",
	"cursorColor" : "#FFFFFF",
	"cursorShape" : "bar",
	"fontSize" : 10,
	"historySize" : 9001,
	"icon" : "%ProgramFiles%\\Git\\mingw64\\share\\git\\git-for-windows.ico",
	"padding" : "8, 8, 8, 8",
	"snapOnInput" : true,
	"useAcrylic" : false
}

Type something like git commit -m "" and press left arrow to put your cursor into the quote marks.
Then type a commit message.
Expected behavior
After you type a character the cursor should be drawn directly after that character.
Actual behavior
The cursor jumps to the end of the line before returning to the correct position. Here is a gif of it happening:

The jumping happens with every typed character, but because of framerate reasons the gif only captured a jump after the second r in "cursor" and the m in "jumps".

When I run bash under "script" (which captures its output), it looks like this is exactly what the shell is emitting.
git commit -m ""
               | cursor before "

If I type x, I get this:
x"<BS>

which advances the cursor two cells and then puts the cursor back before the ".
Make no mistake -- this is how all terminal emulators are handling it. It just so happens that our cursor updates are visible through the " and <BS>. I'm not convinced that that's wrong.
If somebody wants to look at this, they may consider moving the cursor.StartDefer... up to Terminal::Write instead of Terminal::_WriteBuffer. The former is pre-vt, the latter is post-vt. Deferring once per packet instead of once per run of plain text may improve the appearance.

Note: I tried fixing this in conjunction with #1087 this morning. Just moving the StartDefer... call up a layer didn't work, because we'd never invalidate the cell the cursor was on at the start of the deferring, which would leave cursor turds all over the screen. That particular method is currently only used during a resize operation, so while it works for the purpose of suppressing the number of Renderer::TriggerFrame calls we make, that's not really useful for hiding the cursor till the output is done being processed.

This seems to be fixed in recent versions, at least I am not seeing it any more.

Can we reopen this? I'm still seeing this on the most recent build of Windows Terminal Preview.
I'm wondering if this is the same root cause for another problem I have. If I'm doing nothing at my zsh prompt (or inside neovim), the cursor will flicker occasionally instead of staying solid. Is it because Terminal is processing cursor updates faster than zsh/neovim can redraw?

Sure, I'll reopen it. I haven't seen this happening any more since I closed the issue though, so it seems as if it depends on your local setup.

Good thing it was reopened yesterday. I just set up git bash on terminal and I'm getting this issue as well.

im getting the issue only when i have zsh-syntax-highlighting plugin enabled. Might have to do with changing color of the text while typing?

I wanted to provide some further information I just found when testing to narrow down which ZSH plugins cause the flickering issue.
Testing Setup

All of my tests were conducted using both the latest preview release of Terminal (1.22.3232.0) and the latest official release of Terminal (1.21.3231.0).
The reported issues can be reproduced on any terminal running ZSH. From my testing, it is reproducible in any of:

Git bash with ZSH,
WSL with ZSH,
SSH into a remote Linux host with ZSH.

To ensure a clean environment, I removed all plugins from my ZSH config, ensuring the environment was clean before testing each plug-in individually.
Results
The flickering issue can be reproduced when the zsh-users/zsh-syntax-highlighting plug-in is enabled. That being said, having a theme enabled (such as powerlevel10k) and having additional plug-ins such as zsh-users/zsh-autosuggestions exacerbates the issue. Removing the zsh-users/zsh-syntax-highlighting causes the flickering to disappear.
I will also note that the issue appears to have been fixed (or at least it is not noticeable) in Terminal version 1.18.10301.0. I have tested later versions and they all have the flickering issue present.

I suspect what caused this in newer versions is that we do not delay rendering anymore when we receive input. So, if an application sends "some" followed by "text", we may now render "some" and then "some text" in the next frame. The ideal solution is for applications to be mindful over when to emit text to stdout (i.e. don't printf multiple times for a single prompt in your zsh script). I'm not sure if there's an ideal solution for the terminal side as it can't look into the future to know if there will be more text coming in.
What I think we could do is a technique called "late latching", commonly used in VR rendering and perhaps newer FPS to reduce input latency by delaying rendering until shortly before the next v-blank.

If it could be reduced so it's barely noticeable, I think that would be a huge improvement. That said, I do want to mention that out of all the terminal emulators I've tried (Guake, Yakuake, Konsole, Gnome terminal, and Kitty) only the Windows Terminal has issues with ZSH and syntax highlighting. Could help in finding a better solution down the line?

In case of WSL and zsh-users/zsh-syntax-highlighting I found that I can fix the flickering if I set appendWindowsPath=false in my /etc/wsl.conf. Without having read the plugin's source code, this may indicate that zsh-users/zsh-syntax-highlighting draws the text once without colorization, then resolves whether the given executable name is valid, and then applies the colorization. That will of course lead to flickering if resolving the executable path takes too long.

I don't think the resolution of executable paths is to blame here, at least not when running ZSH in Git bash and certainly not when it's running on a Linux server. As I mentioned in my previous reply, the flickering issue appears to be exclusive to Terminal (or at least it's the only one that I have tested that has that issue) and it wasn't there in 1.18.10301.0. That being said, if the speed with which terminal is rendering text has gone up relative to the speed of resolution (which has probably stayed constant) then I can see how that would be an issue. If so, is there a way to... maybe throttle down the speed with which terminal renders? Maybe that can be tuned to solve the issue?

I don't think the resolution of executable paths is to blame here, at least not when running ZSH in Git bash and certainly not when it's running on a Linux server.

The reason I brought it up is because I think it's a good hint as to what's going on. Right now, it's still unclear if the issue is the rendering, because I haven't finished investigating the issue yet (this isn't the only issue I'm working on). This is particularly true because this issue started off being about bash and not zsh.

That being said, if the speed with which terminal is rendering text has gone up relative to the speed of resolution (which has probably stayed constant) then I can see how that would be an issue.

Both have gone up significantly over the last two years (Windows Terminal Preview is one of the fastest terminals now). If the hypothesis of too frequent stdout flushing is true, then this is what exacerbates the issue.

If so, is there a way to... maybe throttle down the speed with which terminal renders? Maybe that can be tuned to solve the issue?

I'd be against that. I prefer two ways to go about this:

Find a bug in our code and fix it.
Otherwise, improve whatever software causes the issue. Most slow VT applications are slow for no good reason.

I hope it's the former, but it's difficult to figure out what it could be, in particular because it simply doesn't happen to me in my day-to-day work.
...the only exception is when I use btop over SSH and open the options menu. That causes its menu to flicker really badly in Windows Terminal. But I know why that happens, and it's the exact issue I mentioned above: Too frequent flushing. The output arrives in two different WriteConsoleA calls per frame (roughly 10kB each).

Fair enough. If you need me to try anything, let me know!


On the setting of args.seed and the problem that trainset has no shuffle in dataloader.

Hello author, I found that in your code, args.seed is fixed at 42. Is this to reproduce the results? If I verify the mean and variance of your model accuracy, should I fix args.seed==42? Secondly, there is no shuffle in your trainset, so the data is entered in the original order without being disturbed. Is this reasonable?

How to get the "mean and variance index" in the paper? Do you use different args.seed for each experiment? Or do you use the same value for every experiment, such as args.seed=42?
I tried to reproduce the paper myself, and found that under the condition of args.seed=42, the results of each run were exactly the same.

Mean and variance values are calculated by running the experiments several times with different random seeds.


Page counter goes to zero  when revision marks text, has more than 2 paragraphs and breaks page

If a revision that highlight text breaks page, and it has multiple paragraphs, it restarts the numbering of pages to zero
testebugpagezero.zip
testebugpagezero.pdf
There is an exemple in the attached file, showing the bug and also when it works well.
This seems to be an inherited bug, since we don´t work with page numbers, probably coming from hyperref (addcontentsline?)

The problem is with the use of \hl.
In line 264 of .sty (must find it in .dtx.
Must find another way for highlighting.

Registered as a bug in soul.
Waiting for an answer.

Seems to be solved in 3.0


Feature: godep

Saves godeps and provides instructions to restore godeps in readme.
Also simplifies installation instructions by using go get github.com/ajvb/kala (this will install the kala binary to the Go workspace bin directory).
Addresses https://github.com/ajvb/kala/issues/52
TODO:

[ ] Resolve circleci failure

@nicday Thanks for the PR. Adding Godeps to .gitignore looks like it will fix the Godeps problem. We are using a custom testing binary to easily create a package wide coverprofile that seems to be testing the contents of Godeps.

Godep recommends that you commit the whole Godeps directory, including _workspace.
This allows the ability to isolate dependencies for this project from other dependencies that a developer may have installed in their local $GOPATH. For example, if Kala depends on version 2 of a package and another project the developer is working on depends on version 1 of the same package, they can run godep go [run/build/install] to use the vendored  dependencies, without rewriting existing dependencies within your $GOPATH, allowing both projects to use the exact version of the package they depend on.
Instead I have resolved the issue by passing Godeps as ignored directory to Overalls.
However CircleCI is now failing because Coveralls can't find the repo... You may need to have a look at this on your end.


Add support for type modifiers on import names

Is your feature request related to a problem? Please describe.
https://devblogs.microsoft.com/typescript/announcing-typescript-4-5/#type-on-import-names
Describe the solution you'd like
Support for at least preserving type modifiers on import names.
Describe alternatives you've considered
n/a
Additional context
n/a

@dicarlo2
Thanks for the feedback!
I've published v7.4.2 to address the issue. Please have a look.


Hot Module Reloading

HMR is in a lot of flux.
Hot Reloading in React
or, an Ode to Accidental Complexity: Article by Dan Abramov that sums up the issues.
@jbhatab We should definitely remove any HMR from the generators and refer to doc pages.
@alexfedoseev Any suggestions?

@justin808 you're confusing HMR and React Transform

I read the article the other day and what I got from it is that React Transform works, but is not the ideal solution. Seems like it should stick around until there is a better solution, no?

So, does the current version of react_on_rails use "Vanilla HMR" as described in the article, or something else?

We're using: https://github.com/gaearon/react-transform-hmr
See:

https://github.com/shakacode/react_on_rails/blob/master/spec%2Fdummy%2Fclient%2Fwebpack.client.rails.hot.config.js#L36
https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/client%2Fwebpack.client.rails.hot.config.js#L42

Could my errors be any help for figuring it out?
I am debugging this issue opened by #332 the react_on_rails gem community.
Hot reloading works, but whenever I click on an anchor tag to navigate other pages. I get collision issues about React or babel-polyfil (issue here)

@alexfedoseev @robwise Any chance you can jot down the notes we've been having internally in this file: https://github.com/shakacode/react_on_rails/blob/master/docs%2Fadditional-reading%2Fhot-reloading-rails-development.md
If all there, let me know and I'll close this issue.

@justin808 There is nothing to add about non-rails related things yet. Next way of doing hot reloading in react apps w/ mixed  stateless & stateful components — react-hot-loader — is in beta and we need to add one more method to ReactOnRails api to make them compatible.

@alexfedoseev What's the method to add to React OnRails. Should this go into v6? I can wait for this if it's something simple.

@justin808 I wouldn't delay v6 as react-hot-reloader is still somewhat in flux, although it wouldn't hurt to start working on this.

👍
We need method, which will allow to (re)call ReactDOM.render for component.

@alexfedoseev can you show me what's needed and I'll make a PR or if more efficient, you can start the PR and I'll finish it. Don't spend more than a few min on this! (too much other more important things!)

@alexfedoseev Can you confirm this is just a doc issue?

@alexfedoseev we should hack on this together at some point. Justin I don't think this is a docs issue, we need to change the code to expose a hook we can use for the new react hot reloader

@robwise Yeah, on hold until this will be released (https://github.com/gaearon/react-hot-loader).

Just wanted to confirm that I've got as far as I can with hot reloading. I've been trying to get it working in a hello world app. There's no more npm or webpack complaints and in the console I'm getting [WDS] App updated. Recompiling...   [WDS] App hot update....
Is it just triggering ReactDOM.render that's the missing link?

@archonic Basically yes, since we use ReactOnRails to do the rendering, that won't work for us

I got it working without any additional API from react_on_rails by this import import { render } from 'react-dom'; and this render call render(newApp, container.lastElementChild); with the new https://github.com/gaearon/react-hot-loader 3.0.0-beta.6. container being the DOM element that wraps the Rails view helper react_component. It might be a little brittle regarding changes in the way react_on_rails does its rendering. But it at least covers the transition period.

@aCandidMind Are you also feeding the Rails props in there when you re-render or how does that work?

As a side note, I'm totally lost as to how I'm supposed to rerender components. The whole point of implementing React is to have a way to manage changing data, but it seems that's undocumented. The React object seems to be unexposed in the console.

@archonic I'm not sure I totally understand your question here.
Normal React:
const mountNode = document.getElementById('#mount-point'); // mount-point is the id of some div
ReactDom.render(MyComponent, mountNode);

ReactOnRails:
ReactOnRails.register({ MyComponent: MyComponent });

Then in your Rails view, you do
react_component("MyComponent")

Then ReactOnRails handles the rendering when the page loads. If you want to dismount the entire React component from the page at some point, you would do that the same way you would do it with React, but that's not a typical use case. The react hot loader use case is sort of unusual in this way and is why we're having trouble with it.
When it comes to mounting and unmounting components in response to changing data, that usually happens with the children, not the parent-most component itself. Here MyComponent is the parent-most component. It may have many children, which may be being rendered or removed according to the logic you wrote in your React code.

I have a component which should update after a successful ajax call, but I'm not sure how to wrap the response to re-render the component. I'll have a code example available soon and I'll open an issue if I still have one - don't want to thread jack this issue.

Just curious, what's the status on this update? Is the decision to add support for react-hot-loader v3 at some point in the near future? I tried implementing it and ended up getting the "the following modules couldn't be hot updated" error. I fell back to react-transform-hmr and things are working. But it would be nice to have a roadmap here so as to know what to expect...

@ezmiller It would be great if you can hack on this and maybe create a doc or code PR.
I recommend you try this out at https://github.com/shakacode/react-webpack-rails-tutorial/.

@justin808 It's possible I can find some time for that. Above some people were reflecting on the need to modify the ReactOnRails API, adding a function. Can anyone explain why? I'm not familiar with the details of the mechanisms.

@ezmiller I'm not sure on why the API change is needed.

I haven't read entire thread since my last comment, but this should solve the issue: https://github.com/shakacode/react_on_rails/pull/581
NB!: This change will allow to use react-hot-loader@3, but it's in the beta state right now and whole project is on hold, so things are not going to change in the near future.

Why is react-hot-loader on hold?
On Tue, Nov 15, 2016, 10:45 Alex Fedoseev<EMAIL_ADDRESS>wrote:

I haven't read entire thread since my last comment, but this should solve
the issue: #581 https://github.com/shakacode/react_on_rails/pull/581
NB!: This change will allow to use react-hot-loader@3, but it's in the
beta state right now and whole project is on hold, so things are not going
to change in the near future.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/shakacode/react_on_rails/issues/332#issuecomment-260581575,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAvKgpmG0zDhWQ7l6Cn2mYffKSX9_UToks5q-XFDgaJpZM4HvppP
.

https://twitter.com/dan_abramov/status/780759519441850368?lang=en
https://github.com/gaearon/react-hot-loader/commits/next

FWIW, hot module reloading is still problematic. We're considering using the https://robertknight.github.io/posts/webpack-dll-plugins/ to optimize build times and just manually refreshing.

Also FWIW, as it turned out issue w/ shared store wasn't caused by DLL + WDS conflicts, but DLL only and it wasn't solved yet. So theoretically DLL + WDS can live together, but still, WDS is pretty useless in combination w/ CSS modules + (not working properly) React components hot reloading. So until it's fixed somehow, it's worth to get rid of complex WDS setup in favor of static dev build w/ DLL, which is fast & close to the production one.

@justin808 what problems are you running into? I've got HMR working when I manually handle the render via ReactDOM.render. As a few other people have mentioned it would be nice to get this supported for the ReactOnRails.register({ MyComponent: MyComponent }); use case.

@rupurt We use ReactDOM.render in our helper functions.
https://github.com/shakacode/react_on_rails/blob/master/node_package/src/clientStartup.js#L120
      ReactDOM.render(reactElementOrRouterResult, domNode);

React Hot Loader works perfect for me. I just created a minimal demo here.

Opening a new ticket to integrate this into React on Rails.

@justin808: so does react on rails now support React Hot Loader? I have been looking through the threads but can seem to locate a PR that added support...

Hi @ezmiller,
We certainly support it, but you'll have to configure it yourself. @Judahmeek got it working on https://github.com/shakacode/react-webpack-rails-tutorial.
Is there any chance of you giving me a hand with the PRs that put React on Rails on top of Webpacker:

https://github.com/rails/webpacker/pull/601
https://github.com/shakacode/react_on_rails/pull/908

Other links:

9.0.0.beta.1 Gem
Video of GORUCO 2017 talk

CC: @Judahmeek

@justin808: I'd like to help, but time is limited. What exactly do you need help with? You are trying to get react on rails to work through webpacker?  I've not used webpacker so am unfamiliar, but it looks like it delivers webpack assets more seamlessly in rails?

@ezmiller Can you try to make hot reloading work with the beta version of the gem? https://rubygems.org/gems/react_on_rails/versions/9.0.0.beta.1
Maybe take some notes and let me know where you get stuck and I'll help you out.

@justin808 hmm still using an older version, so will need to manage the upgrade first. I will try to circle back to this. Have another issue I have to deal with first.

@justin808: I finally have a chance to turn to this issue, so I'm going to to try to upgrade to the beta version. Anything changed since we discussed this back in early August?

@ezmiller Please try out beta.12.
Please see https://github.com/shakacode/react_on_rails/blob/rails-webpacker/docs/tutorial.md for the very simple steps to create a new app using the beta. You will need to ensure that you put in the beta versions.

https://www.npmjs.com/package/react-on-rails
https://rubygems.org/gems/react_on_rails/versions/9.0.0.beta.12


fix(auth): update auth packages to prevent 403s

We've been experiencing flaky auth issues during the bug bashes: the automaticSilentRenew feature hasn't been working as advertised: it's supposed to attempt an automatic refresh using an iframe to not force a re-render, but that wasn't happening.
I tried just calling the silent refresh directly so I wouldn't have to update these libraries this close to launch, but that was also kind of a bust. So here we are: I updated the packages and now it works great?
I've updated the testing instructions so it's easy to see if it's working or not. I'll also push this to the preview environment, so it's easier to see if it's actually working.
Changes

updated the oidc-client-ts and react-oidc-context libraries

How to test this PR

Navigate to the regtech realm settings for tokens. Change the Access Token Lifespan to 65 seconds. (oidc-client-ts tries to renew a token one minute before the expiration time, so this will make the frontend seek a new token every five seconds)

Go to the upload page and try to upload a large file with your network tab open.

Notice that the upload page does not refresh or re-render, but notice in the network tab successfully updates the token every 5 seconds.

You can also test that nothing is re-rendering by going to point of contact, making a change to the form, and seeing that your changed content doesn't change when the token is renewed.

Screenshots

This is going to need to be paired with a react query change to update the calls when the token changes.


x/tools/gopls: Workspace never comes up (no response to workspace/configuration)

ATTENTION: Please answer these questions BEFORE submitting your issue. Thanks!
What did you do?
I started up gopls from Emacs on my (large) work project.  All further interaction with gopls times out.  Gopls is working fine on my other modules/projects.
What did you expect to see?
A working gopls with completion, jump-to-definition, etc.
What did you see instead?
All interactions with the language server time out.  In the gopls logs I can see that there is never a response to workspace/configuration, that is, I see this but there's no corresponding response:
[Trace - 10:09:04.294 AM] Received request 'workspace/configuration - (2)'.
Params: {"items":[{"scopeUri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf","section":"gopls"},{"scopeUri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf","section":"gopls-go.sudo.wtf"}]}

Gopls sits and uses a tiny bit of CPU and ~7M of memory, but I can't see anything happening.  Previous versions of gopls have worked properly on this project, although I'm just returning to it after working on other projects for a while so I'm not sure exactly which version stopped working.
This seems to work just fine (the same file I'm viewing in Emacs):
2020/10/14 10:17:58 Info:2020/10/14 10:17:58 go env for /Users/evanmoses/dev/go/src/go.sudo.wtf
(root /Users/evanmoses/dev/go/src/go.sudo.wtf)
(go version go version go1.14.5 darwin/amd64
)
(valid build configuration = true)
(build flags: [])
GO111MODULE=on
GOINSECURE=
GOMODCACHE=
GONOSUMDB=
GOPRIVATE=
GOROOT=/usr/local/Cellar/go/1.14.5/libexec
GOPROXY=https://proxy.golang.org,direct
GOSUMDB=sum.golang.org
GOCACHE=/Users/evanmoses/Library/Caches/go-build
GOFLAGS=-mod=vendor
GOMOD=/Users/evanmoses/dev/go/src/go.sudo.wtf/go.mod
GONOPROXY=
GOPATH=/Users/evanmoses/dev/go

2020/10/14 10:18:04 Info:2020/10/14 10:18:04 go/packages.Load
	snapshot=0
	directory=/Users/evanmoses/dev/go/src/go.sudo.wtf
	query=[./... builtin]
	packages=364

Build info
golang.org/x/tools/gopls v0.5.1
<EMAIL_ADDRESS>h1:AF3Uh7HF08SZpKFfgJO6zfF3bbxyDXWqdkK4kMXiQ1o=
<EMAIL_ADDRESS>h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
<EMAIL_ADDRESS>h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k=
<EMAIL_ADDRESS>h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
<EMAIL_ADDRESS>h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
<EMAIL_ADDRESS>h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA=
<EMAIL_ADDRESS>h1:1R38tQp22dcHpTKJPjgVa16FhlDy/kHEaCM/ndi/FIc=
<EMAIL_ADDRESS>h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
<EMAIL_ADDRESS>h1:nI5egYTGJakVyOryqLs1cQO5dO0ksin5XXs2pspk75k=
<EMAIL_ADDRESS>h1:t8TAw9WgTLghti7RYkpPmqk4JtQ3+wcP5GgZqgWeWLQ=
<EMAIL_ADDRESS>h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=

Do you mind sharing a complete gopls log? That will be helpful in diagnosing the issue.
The workspace/configuration does sound like it might be the problem--but that would be an Emacs problem. gopls sends the request to get the configuration for the workspace, so if Emacs doesn't respond, then it would hang.

Sure, I've redacted the actual source of the file.
[Trace - 10:09:04.272 AM] Sending request 'initialize - (9460)'.
Params: {"processId":null,"rootPath":"/Users/evanmoses/dev/go/src/go.sudo.wtf","clientInfo":{"name":"emacs","version":"GNU Emacs 27.1 (build 3, x86_64-apple-darwin18.7.0, Carbon Version 158 AppKit 1671.6)\n of 2020-08-11"},"rootUri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf","capabilities":{"workspace":{"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"]},"applyEdit":true,"symbol":{"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"executeCommand":{"dynamicRegistration":false},"workspaceFolders":true,"configuration":true},"textDocument":{"declaration":{"linkSupport":true},"definition":{"linkSupport":true},"implementation":{"linkSupport":true},"typeDefinition":{"linkSupport":true},"synchronization":{"willSave":true,"didSave":true,"willSaveWaitUntil":true},"documentSymbol":{"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"completion":{"completionItem":{"snippetSupport":true,"documentationFormat":["markdown"],"resolveAdditionalTextEditsSupport":true},"contextSupport":true},"signatureHelp":{"signatureInformation":{"parameterInformation":{"labelOffsetSupport":true}}},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"hover":{"contentFormat":["markdown","plaintext"]},"foldingRange":{"dynamicRegistration":true},"callHierarchy":{"dynamicRegistration":false},"publishDiagnostics":{"relatedInformation":true,"tagSupport":{"valueSet":[1,2]},"versionSupport":true}},"window":{"workDoneProgress":true}},"initializationOptions":null,"workDoneToken":"1"}

[Trace - 10:09:04.273 AM] Received response 'initialize - (9460)' in 0ms.
Result: {"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"completionProvider":{"triggerCharacters":["."]},"hoverProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":true,"typeDefinitionProvider":true,"implementationProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor.extract","refactor.rewrite","source.fixAll","source.organizeImports"]},"codeLensProvider":{},"documentLinkProvider":{},"workspaceSymbolProvider":true,"documentFormattingProvider":true,"documentOnTypeFormattingProvider":{"firstTriggerCharacter":""},"renameProvider":{"prepareProvider":true},"foldingRangeProvider":true,"executeCommandProvider":{"commands":["generate","fill_struct","regenerate_cgo","test","tidy","undeclared_name","upgrade_dependency","vendor","extract_variable","extract_function","gc_details","generate_gopls_mod"]},"callHierarchyProvider":true,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"}}},"serverInfo":{"name":"gopls","version":"Build info\n----------\ngolang.org/x/tools/gopls v0.5.1\n<EMAIL_ADDRESS>h1:AF3Uh7HF08SZpKFfgJO6zfF3bbxyDXWqdkK4kMXiQ1o=\n<EMAIL_ADDRESS>h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=\n<EMAIL_ADDRESS>h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k=\n<EMAIL_ADDRESS>h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=\n<EMAIL_ADDRESS>h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=\n<EMAIL_ADDRESS>h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA=\n<EMAIL_ADDRESS>h1:1R38tQp22dcHpTKJPjgVa16FhlDy/kHEaCM/ndi/FIc=\n<EMAIL_ADDRESS>h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=\n<EMAIL_ADDRESS>h1:nI5egYTGJakVyOryqLs1cQO5dO0ksin5XXs2pspk75k=\n<EMAIL_ADDRESS>h1:t8TAw9WgTLghti7RYkpPmqk4JtQ3+wcP5GgZqgWeWLQ=\n<EMAIL_ADDRESS>h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=\n"}}

[Trace - 10:09:04.284 AM] Sending notification 'initialized'.
Params: {}

[Trace - 10:09:04.285 AM] Received request 'window/workDoneProgress/create - (1)'.
Params: {"token":"5577006791947779410"}

[Trace - 10:09:04.294 AM] Sending notification 'textDocument/didOpen'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go","languageId":"go","version":0,"text":"<REDACTED>"}}

[Trace - 10:09:04.294 AM] Sending response 'window/workDoneProgress/create - (1)' in 9ms.
Result:

[Trace - 10:09:04.294 AM] Received notification '$/progress'.
Params: {"token":"5577006791947779410","value":{"kind":"begin","title":"Setting up workspace","message":"Loading packages..."}}

[Trace - 10:09:04.294 AM] Received request 'workspace/configuration - (2)'.
Params: {"items":[{"scopeUri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf","section":"gopls"},{"scopeUri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf","section":"gopls-go.sudo.wtf"}]}

[Trace - 10:09:04.315 AM] Sending request 'textDocument/documentSymbol - (9461)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"}}

[Trace - 10:09:04.334 AM] Sending request 'textDocument/codeAction - (9462)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"range":{"start":{"line":97,"character":4},"end":{"line":97,"character":4}},"context":{"diagnostics":[]}}

[Trace - 10:09:04.334 AM] Sending request 'textDocument/documentLink - (9463)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"}}

[Trace - 10:09:04.335 AM] Sending request 'textDocument/documentHighlight - (9464)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":97,"character":4}}

[Trace - 10:09:04.783 AM] Sending notification '$/cancelRequest'.
Params: {"id":9462}

[Trace - 10:09:04.784 AM] Sending request 'textDocument/codeAction - (9465)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"range":{"start":{"line":97,"character":4},"end":{"line":97,"character":4}},"context":{"diagnostics":[]}}

[Trace - 10:09:04.784 AM] Sending request 'textDocument/documentLink - (9466)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"}}

[Trace - 10:09:04.785 AM] Sending notification '$/cancelRequest'.
Params: {"id":9464}

[Trace - 10:09:04.785 AM] Sending request 'textDocument/documentHighlight - (9467)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":97,"character":4}}

[Trace - 10:09:07.116 AM] Sending request 'textDocument/hover - (9468)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":96,"character":11}}

[Trace - 10:09:07.244 AM] Sending request 'textDocument/hover - (9469)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":95,"character":4}}

[Trace - 10:09:07.764 AM] Sending request 'textDocument/hover - (9470)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":94,"character":11}}

[Trace - 10:09:08.294 AM] Sending notification '$/cancelRequest'.
Params: {"id":9465}

[Trace - 10:09:08.295 AM] Sending request 'textDocument/codeAction - (9471)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"range":{"start":{"line":94,"character":11},"end":{"line":94,"character":11}},"context":{"diagnostics":[]}}

[Trace - 10:09:08.296 AM] Sending request 'textDocument/documentLink - (9472)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"}}

[Trace - 10:09:08.296 AM] Sending notification '$/cancelRequest'.
Params: {"id":9467}

[Trace - 10:09:08.297 AM] Sending request 'textDocument/documentHighlight - (9473)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":94,"character":11}}

[Trace - 10:09:08.298 AM] Sending request 'textDocument/hover - (9474)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":94,"character":11}}

[Trace - 10:10:28.005 AM] Sending notification '$/cancelRequest'.
Params: {"id":9472}

[Trace - 10:10:28.006 AM] Sending notification '$/cancelRequest'.
Params: {"id":9471}

[Trace - 10:10:28.006 AM] Sending notification '$/cancelRequest'.
Params: {"id":9466}

[Trace - 10:10:28.006 AM] Sending notification '$/cancelRequest'.
Params: {"id":9463}

[Trace - 10:10:31.641 AM] Sending request 'textDocument/hover - (9475)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":94,"character":11}}

[Trace - 10:10:32.238 AM] Sending request 'textDocument/codeAction - (9476)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"range":{"start":{"line":94,"character":11},"end":{"line":94,"character":11}},"context":{"diagnostics":[]}}

[Trace - 10:10:32.238 AM] Sending request 'textDocument/documentLink - (9477)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"}}

[Trace - 10:10:32.238 AM] Sending notification '$/cancelRequest'.
Params: {"id":9473}

[Trace - 10:10:32.239 AM] Sending request 'textDocument/documentHighlight - (9478)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":94,"character":11}}

[Trace - 10:10:34.085 AM] Sending notification '$/cancelRequest'.
Params: {"id":9477}

[Trace - 10:10:34.085 AM] Sending notification '$/cancelRequest'.
Params: {"id":9476}

[Trace - 10:10:37.695 AM] Sending request 'textDocument/hover - (9479)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":94,"character":11}}

[Trace - 10:10:38.295 AM] Sending request 'textDocument/codeAction - (9480)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"range":{"start":{"line":94,"character":11},"end":{"line":94,"character":11}},"context":{"diagnostics":[]}}

[Trace - 10:10:38.295 AM] Sending request 'textDocument/documentLink - (9481)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"}}

[Trace - 10:10:38.297 AM] Sending notification '$/cancelRequest'.
Params: {"id":9478}

[Trace - 10:10:38.298 AM] Sending request 'textDocument/documentHighlight - (9482)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":94,"character":11}}

[Trace - 10:10:39.282 AM] Sending notification '$/cancelRequest'.
Params: {"id":9481}

[Trace - 10:10:39.283 AM] Sending notification '$/cancelRequest'.
Params: {"id":9480}

[Trace - 10:29:03.919 AM] Sending notification '$/cancelRequest'.
Params: {"id":9482}

[Trace - 10:29:04.450 AM] Sending notification '$/cancelRequest'.
Params: {"id":9474}

[Trace - 10:29:10.807 AM] Sending request 'textDocument/hover - (9489)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":94,"character":11}}

[Trace - 10:29:11.388 AM] Sending request 'textDocument/codeAction - (9490)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"range":{"start":{"line":94,"character":11},"end":{"line":94,"character":11}},"context":{"diagnostics":[]}}

[Trace - 10:29:11.388 AM] Sending request 'textDocument/documentLink - (9491)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"}}

[Trace - 10:29:11.389 AM] Sending request 'textDocument/documentHighlight - (9492)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":94,"character":11}}

[Trace - 10:29:12.204 AM] Sending request 'textDocument/hover - (9493)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":95,"character":4}}

[Trace - 10:29:12.372 AM] Sending request 'textDocument/hover - (9494)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":96,"character":11}}

[Trace - 10:29:12.524 AM] Sending request 'textDocument/hover - (9495)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":97,"character":4}}

[Trace - 10:29:13.055 AM] Sending notification '$/cancelRequest'.
Params: {"id":9490}

[Trace - 10:29:13.057 AM] Sending request 'textDocument/codeAction - (9496)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"range":{"start":{"line":97,"character":4},"end":{"line":97,"character":4}},"context":{"diagnostics":[]}}

[Trace - 10:29:13.057 AM] Sending request 'textDocument/documentLink - (9497)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"}}

[Trace - 10:29:13.058 AM] Sending notification '$/cancelRequest'.
Params: {"id":9492}

[Trace - 10:29:13.059 AM] Sending request 'textDocument/documentHighlight - (9498)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":97,"character":4}}

[Trace - 10:29:13.060 AM] Sending request 'textDocument/hover - (9499)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":97,"character":4}}

[Trace - 10:29:22.480 AM] Sending request 'textDocument/hover - (9500)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":107,"character":59}}

[Trace - 10:29:22.482 AM] Sending request 'textDocument/hover - (9501)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":107,"character":59}}

[Trace - 10:29:23.011 AM] Sending notification '$/cancelRequest'.
Params: {"id":9496}

[Trace - 10:29:23.012 AM] Sending request 'textDocument/codeAction - (9502)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"range":{"start":{"line":107,"character":59},"end":{"line":107,"character":59}},"context":{"diagnostics":[]}}

[Trace - 10:29:23.012 AM] Sending request 'textDocument/documentLink - (9503)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"}}

[Trace - 10:29:23.012 AM] Sending notification '$/cancelRequest'.
Params: {"id":9498}

[Trace - 10:29:23.013 AM] Sending request 'textDocument/documentHighlight - (9504)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":107,"character":59}}

[Trace - 10:29:23.014 AM] Sending notification '$/cancelRequest'.
Params: {"id":9499}

[Trace - 10:29:23.014 AM] Sending request 'textDocument/hover - (9505)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":107,"character":59}}

[Trace - 10:29:28.061 AM] Sending notification '$/cancelRequest'.
Params: {"id":9503}

[Trace - 10:29:28.061 AM] Sending notification '$/cancelRequest'.
Params: {"id":9502}

[Trace - 10:29:28.061 AM] Sending notification '$/cancelRequest'.
Params: {"id":9497}

[Trace - 10:29:28.061 AM] Sending notification '$/cancelRequest'.
Params: {"id":9491}

[Trace - 10:29:31.938 AM] Sending request 'textDocument/hover - (9506)'.
Params: {"textDocument":{"uri":"file:///Users/evanmoses/dev/go/src/go.sudo.wtf/backend/controller/gateways_test.go"},"position":{"line":107,"character":59}}

OK, now that I understand it's a client problem I think I see the problem in lsp-mode, it appears that it's trying to split the project name go.sudo.wtf into smaller segments and erroring out.


Unexpected behavior from DbSet.Find() when trying to Find an id that exists in another deriving table

Description
The DbSet<T>.Find() method throws an System.InvalidOperationException when Find'ing a id in a DbSet<T> where T inherits from a class which has it's own table, and the id exists in another table that inherits from the same class as T. This feels like unexpected behavior as the Find method should simply return null.
I understand this sounds confusing, so please see the partial code listings in the retro seps below.
Exception
Exception message: The specified cast from a materialized 'System.Data.Entity.DynamicProxies.Post_F0E06E764FED1F3C899F46C50BB6323AB653D8519ED1A77CAE62DD032DBA2B42' type to the 'TestWebApp.Models.Comment' type is not valid.
ExceptionType: System.InvalidOperationException
Stack trace: at System.Data.Entity.Core.Common.Internal.Materialization.CodeGenEmitter.CheckedConvert[TSource,TTarget](TSource value)\r\n   at lambda_method(Closure , Shaper )\r\n   at System.Data.Entity.Core.Common.Internal.Materialization.Shaper.HandleEntityAppendOnly[TEntity](Func`2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet)\r\n   at lambda_method(Closure , Shaper )\r\n   at System.Data.Entity.Core.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper)\r\n   at System.Data.Entity.Core.Common.Internal.Materialization.Shaper`1.SimpleEnumerator.MoveNext()\r\n   at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()\r\n   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)\r\n   at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__2[TResult](IEnumerable`1 sequence)\r\n   at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot)\r\n   at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[TResult](Expression expression)\r\n   at System.Linq.Queryable.SingleOrDefault[TSource](IQueryable`1 source)\r\n   at System.Data.Entity.Internal.Linq.InternalSet`1.FindInStore(WrappedEntityKey key, String keyValuesParamName)\r\n   at System.Data.Entity.Internal.Linq.InternalSet`1.Find(Object[] keyValues)\r\n   at System.Data.Entity.DbSet`1.Find(Object[] keyValues)\r\n   at TestWebApp.Controllers.CommentsController.GetComment(Int32 id) in C:\\Users\\Joas\\source\\repos\\TestWebApp\\TestWebApp\\Controllers\\CommentsController.cs:line 29\r\n   at lambda_method(Closure , Object , Object[] )\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_1.<GetExecutor>b__3(Object instance, Object[] methodParameters)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()

Steps to reproduce
a complete code listing: https://github.com/JoasE/ReplicateEF6Error
Steps
First create a post by performing a POST to /api/posts with {} as json content.
Then create a comment by performing a POST to /api/comments with {"PostId": 1} as json content.
The comment will have an id of 2, because the comments and posts share the same id
Then try to GET a comment with the id of the just created post: GET /api/comments/1.
This will result in the error.
The Find method will look in the likables table and find a comment, then it will try to cast that comment to a post, which is not possible, and throws an exception.
The behavior should be Find returning null.
Partial code listings
For example I am using the idea of a blog in which you can like both posts and comments on those posts.
In that scenario you could design this Model hiarchy
public abstract class Likable
{
	public int Id { get; set; }

	public virtual List<Like> Likes { get; set; }
}

public class Post : Likable
{
	public string Title { get; set; }

	public string Content { get; set; }

	public virtual List<Comment> Comments { get; set; }
}

public class Comment : Likable
{
	public int PostId { get; set; }

	public virtual Post Post { get; set; }

	public string Content { get; set; }
}

public class Like
{
	/// <summary>
	/// The id of the likable object the like is on
	/// </summary>
	[Key, Column(Order = 0)]
	public int LikableId { get; set; }

	/// <summary>
	/// The likable object the like is on
	/// </summary>
	public virtual Likable Likable { get; set; }

	[Key, Column(Order = 1)]
	public int UserId { get; set; }

	public virtual User User { get; set; }
}

public class User
{
	public int Id { get; set; }

	public string Username { get; set; }

	public virtual List<Like> Likes { get; set; }
}

Then use Fluent API to give each likable a dedicated table and like that setup proper database table inheritance:
public class TestWebAppContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        // Give posts and comments dedicated tables.
        modelBuilder.Entity<Post>().ToTable("Posts");
        modelBuilder.Entity<Comment>().ToTable("Comments");

        base.OnModelCreating(modelBuilder);
    }

    public System.Data.Entity.DbSet<Post> Posts { get; set; }
    public System.Data.Entity.DbSet<Comment> Comments { get; set; }
}

The database and model hierarchy will now look like this:

Then scaffold 2 API controllers for Posts and Comments  (As you might notice while scaffolding the controllers, the scaffolder will misunderstand the naming of the dbset properties in the Context, you will have to rename the properties).
perform the steps sectioned above to recreate the error.
For a complete code listing, see above.
What about FirstOrDefault and SingleOrDefault?
If you replace Line 29 in the CommentsController with Comment comment = db.Comments.FirstOrDefault(c => c.Id == id); or Comment comment = db.Comments.SingleOrDefault(c => c.Id == id);, the error does not occur.
Further technical details
EF version: 6.2.0
Database Provider: System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer
Operating system: Windows 10
IDE: Visual Studio Enterprise 2017 15.7.5

@JoasE This was one of those behaviors that we debated a lot back in the day and ultimately went for the option of throwing. In retrospect, that was probably the wrong choice--in EF Core we changed to returning null in these situations. I'll discuss with @divega whether this is something we could change in a future EF6 release--it would technically be a breaking change, but only in a case that currently throws, so it might be acceptable.
As a workaround, you should be able to call Find on the DbSet<Likable> which will return either a Comment or a Post, and then check the runtime type to see whether it is the item you were looking for.

@JoasE We discussed this, and while we are not planning to make the change to return null, we would consider a well-written community PR to make such a change.


ValueError: numpy.ufunc size changed, may indicate binary incompatibility.

Hi again,
regarding the analysis we were running in #3553. The Picard issue was fixed, for which many thanks, but we just encountered this issue downstream:
Traceback (most recent call last):
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/tools/bin/bcbio_nextgen.py", line 245, in <module>
    main(**kwargs)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/tools/bin/bcbio_nextgen.py", line 46, in main
    run_main(**kwargs)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/pipeline/main.py", line 50, in run_main
    fc_dir, run_info_yaml)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/pipeline/main.py", line 91, in _run_toplevel
    for xs in pipeline(config, run_info_yaml, parallel, dirs, samples):
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/pipeline/main.py", line 187, in variant2pipeline
    samples = population.prep_db_parallel(samples, run_parallel)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/variation/population.py", line 406, in prep_db_parallel
    output = parallel_fn("prep_gemini_db", to_process)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/distributed/multi.py", line 28, in run_parallel
    return run_multicore(fn, items, config, parallel=parallel)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/distributed/multi.py", line 86, in run_multicore
    for data in joblib.Parallel(parallel["num_jobs"], batch_size=1, backend="multiprocessing")(joblib.delayed(fn)(*x) for x in items):
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/joblib/parallel.py", line 1048, in __call__
    if self.dispatch_one_batch(iterator):
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/joblib/parallel.py", line 866, in dispatch_one_batch
    self._dispatch(tasks)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/joblib/parallel.py", line 784, in _dispatch
    job = self._backend.apply_async(batch, callback=cb)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 208, in apply_async
    result = ImmediateResult(func)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 572, in __init__
    self.results = batch()
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/joblib/parallel.py", line 263, in __call__
    for func, args, kwargs in self.items]
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/joblib/parallel.py", line 263, in <listcomp>
    for func, args, kwargs in self.items]
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/utils.py", line 59, in wrapper
    return f(*args, **kwargs)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/distributed/multitasks.py", line 387, in prep_gemini_db
    return population.prep_gemini_db(*args)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/variation/population.py", line 51, in prep_gemini_db
    gemini_db = create_gemini_db(ann_vcf, data, gemini_db, ped_file)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/variation/population.py", line 143, in create_gemini_db
    do.run(cmd, "GEMINI: create database with vcf2db")
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/provenance/do.py", line 26, in run
    _do_run(cmd, checks, log_stdout, env=env)
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/lib/python3.7/site-packages/bcbio/provenance/do.py", line 106, in _do_run
    raise subprocess.CalledProcessError(exitcode, error_msg)
subprocess.CalledProcessError: Command '/vscmnt/gent_kyukon_data/_kyukon_data_gent/shared/000/gvo00082/bcbio/anaconda/envs/python2/bin/vcf2db.py /vscmnt/gent_kyukon_data/_kyukon_data_gent/vo/000/gvo00082/research/LabDeBaere/WES/2006KNO-0039/samples_2006KNO-0039-merged/work/gemini/D1914769-joint-gatk-haplotype-joint-nomultiallelic-annotated-dbnsfp.vcf.gz /vscmnt/gent_kyukon_data/_kyukon_data_gent/vo/000/gvo00082/research/LabDeBaere/WES/2006KNO-0039/samples_2006KNO-0039-merged/work/gemini/D1914769-joint-gatk-haplotype-joint-nomultiallelic.ped /scratch/gent/vo/000/gvo00082/vsc43079/bcbio/tmpxalvnlv5/D1914769-joint-gatk-haplotype-joint.db
Traceback (most recent call last):
  File "/vscmnt/gent_kyukon_data/_kyukon_data_gent/shared/000/gvo00082/bcbio/anaconda/envs/python2/bin/vcf2db.py", line 30, in <module>
    import cyvcf2
  File "/kyukon/data/gent/shared/000/gvo00082/bcbio/anaconda/envs/python2/lib/python2.7/site-packages/cyvcf2/__init__.py", line 1, in <module>
    from .cyvcf2 import (VCF, Variant, Writer, r_ as r_unphased, par_relatedness,
  File "__init__.pxd", line 918, in init cyvcf2.cyvcf2
ValueError: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216 from C header, got 192 from PyObject
' returned non-zero exit status 1.

We've tried updating to:
vcf2db                    2020.02.24           hdfd78af_1    bioconda
cyvcf2                    0.30.11          py27h3ce6e29_0    bioconda
numpy                     1.12.1          py27_blas_openblash1522bff_1001    conda-forge

But no luck...
Considering these threads:
https://github.com/scikit-learn-contrib/hdbscan/issues/272
https://stackoverflow.com/questions/60323366/valueerror-numpy-ufunc-size-changed-may-indicate-binary-incompatibility-expec
Would it be possible to extract vcf2db and cyvcf2 from the Py2 environment and switch to Py3? This way we hope a more recent numpy version will alleviate the problem.
Regards
Mattias, also on behalf of Matthias (@matthdsm)

Hi Mattias @mvheetve !
Thanks for the detailed report!
We have tried upgrading vcf2db to python3 and ran into issues.
Could you please try (you might need to remove vcf2db/cyvcf2/numpy in the python2 env):
mamba install -n python2 vcf2db=2020.02.24=0 cyvcf2=0.10 numpy=1.16

and try running the project again?
(it seems to be a working combination in one of the installations)
Sergey

Hi Sergey,
Sorry, but this fix won't work for us. When we try to install this we get the following diff
  Package                Version  Build                            Channel                    Size
────────────────────────────────────────────────────────────────────────────────────────────────────
  Change:
────────────────────────────────────────────────────────────────────────────────────────────────────

  - platypus-variant     <IP_ADDRESS>  py27ha70a282_1                   installed
  + platypus-variant     <IP_ADDRESS>  py27hb763d49_0                   bioconda/linux-64          4 MB
  - vcf2db            2020.02.24  hdfd78af_1                       installed
  + vcf2db            2020.02.24  0                                bioconda/noarch           14 KB

  Upgrade:
────────────────────────────────────────────────────────────────────────────────────────────────────

  - numpy                 1.12.1  py27_blas_openblash1522bff_1001  installed
  + numpy                 1.16.5  py27h95a1406_0                   conda-forge/linux-64       4 MB
  - pandas                0.19.2  np112py27_1                      installed
  + pandas                0.24.2  py27hb3f55d8_0                   conda-forge/linux-64      11 MB

  Downgrade:
────────────────────────────────────────────────────────────────────────────────────────────────────

  - bcftools              1.10.2  h4f4756c_3                       installed
  + bcftools                 1.9  h68d8f2e_9                       bioconda/linux-64        682 KB
  - cyvcf2               0.30.11  py27h3ce6e29_0                   installed
  + cyvcf2               0.10.10  py27hbbd59f4_0                   bioconda/linux-64        697 KB
  - gsl                      2.6  he838d99_2                       installed
  + gsl                      2.5  h294904e_1                       conda-forge/linux-64     Cached
  - htslib                1.10.2  h78d89cc_0                       installed
  + htslib                   1.9  h244ad75_9                       bioconda/linux-64        Cached
  - lumpy-sv               0.3.1  py27hfbaaabd_0                   installed
  + lumpy-sv               0.3.0  ha52163a_3                       bioconda/linux-64          4 MB
  - mosdepth               0.2.9  hbeb723e_1                       installed
  + mosdepth               0.2.6  hfb13731_0                       bioconda/linux-64        207 KB
  - phylowgs            20181105  py27h40b51d9_5                   installed
  + phylowgs            20150714  py27_1                           bioconda/linux-64        930 KB
  - sambamba               0.8.0  h984e79f_0                       installed
  + sambamba               0.7.1  h148d290_2                       bioconda/linux-64          3 MB
  - samtools                1.10  h2e538c0_3                       installed
  + samtools                 1.7  1                                bioconda/linux-64        Cached
  - svtools                0.5.1  py_0                             installed
  + svtools                0.4.0  py27h24bf2e0_2                   bioconda/linux-64         81 KB
  - svtyper                0.7.1  py_0                             installed
  + svtyper                0.7.0  py27h24bf2e0_1                   bioconda/linux-64         66 KB

We're seeing downgrades for cyvcf2 and mosdepth (no idea why mosdepth is in there?) which would reintroduce some bugs which have since been fixed in the most recent versions.
Could you specify which issues you ran into when trying to install vcf2db under py3? Perhaps thats something that can be fixed at the source.
Thanks
MattHias

Hi @matthdsm and @mvheetve !
Thanks for testing!
I was lucky to reproduce and fix this issue with:
mamba install -n python2 numpy=1.16

the diff is quite small:
Package    Version  Build              Channel                    Size
──────────────────────────────────────────────────────────────────────────
 Upgrade:
──────────────────────────────────────────────────────────────────────────

 - numpy     1.11.3  py27he5ce36f_1207  installed
 + numpy     1.16.5  py27h95a1406_0     conda-forge/linux-64     Cached
 - pandas    0.19.2  np111py27_1        installed
 + pandas    0.24.2  py27hb3f55d8_0     conda-forge/linux-64      11 MB

 Downgrade:
──────────────────────────────────────────────────────────────────────────

 - svtools    0.5.1  py_0               installed
 + svtools    0.4.0  py27h24bf2e0_2     bioconda/linux-64        Cached
 - svtyper    0.7.1  py_0               installed
 + svtyper    0.7.0  py27h24bf2e0_1     bioconda/linux-64        Cached

Could you please confirm whether this pin works for you?
Sergey
ps. I will try to dig out what was the particular the vcf2db python3 issue, but no commitments on the fast switch, unfortunately.
We have a long term project, from which bcbio had originated initially, so 10 years already, with thousands of samples, 0.5T gemini databases (one db), dozens of databases, sophisticated annotations, active data mining. It is using vcf2db/gemini and we had troubles generating the databases with python3 vcf2db.

Upgrading the numpy version seems to have fixed the issue (for now)!
Thanks for the help. If you have any idea what causes the vcf2db py3 issues, please let me know.
Matthias

Hi Sergey,
analysis was completed with succes after the numpy upgrade. Thanks for the help!
Mattias


Ptrrssll: add -n --NOEXCEPTION option

Added -n or --noexception to defeat creation of new exception on Send failure

I've been running "MouseJiggler.exe -j -z -m -n" for the last week under normal use, lock and unlock, chrome/selenium test execution and Visual Studio 2017 Pro use. I'm sure send failures occur from time to time for a variety of reasons, but the main aim for me is to defeat the console power timeout that is set to 15 minutes by GP. This allows tests that run remotely to be able to generate screenshots that are not all black as the console power is no longer being tripped.

Thank you. This fixes #9 too. I'm using your version in my environment too and it works. @cerebrate Kindly merge this and release, please.

This should fix #10 as well, same exception stack trace.  Once question, is the exception thrown by SendInput or is the COM exception trapped and reported up?  If the former, the TRY should also encompass the SendInput.  If the later, the fix should be fine.


Add ability to configure Barong API version

@dkkoval Do we need to assign this variable too? https://github.com/rubykube/omniauth-barong/commit/8631863038a8efd7fdedcf818e3714a1823b498f#diff-daf65cb1bbf7128ba9900cf8ed65821cR16


Fix sidebar min width

In the absence of work to make it more responsive, we should fix the min-width of the sidebar

We made it respond to the scrollbar width in #561. Closing.


Fix make help

We need a way to improve/override the targets in the common file. The change I made to the help target doesn't make much sense in the upstream code base, because there are only a few targets and they aren't organized into topics. But in our operator, we have many targets and they're all nicely grouped. Before we switched to using the upstream Makefiles, this was the output of make help:
$ make help

Usage:
  make <target>

General
  help             Display this help.

Testing
  test             Run tests.

Build
  build            Build manager binary.
  run              Run a controller from your host.
  docker-build     Build docker image with the manager.
  docker-push      Push docker image with the manager.
  docker-buildx    Build and push docker image for the manager for cross-platform support

Deployment
  install          Install CRDs into the K8s cluster specified in ~/.kube/config.
  uninstall        Uninstall CRDs from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion.
  deploy           Deploy controller to the K8s cluster specified in ~/.kube/config.
  deploy-yaml      Outputs YAML manifests needed to deploy the controller
  deploy-olm       Builds and pushes the operator OLM bundle and then deploys the operator using OLM
  undeploy         Undeploy controller from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion.
  undeploy-olm     Undeploys the operator from the cluster (used only if operator was installed via OLM)
  deploy-example-openshift  Deploy an example Istio resource on OpenShift
  deploy-example-kubernetes  Deploy an example Istio resource on Kubernetes

Generated Code & Resources
  gen-manifests    Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
  gen-code         Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
  gen-charts       Pull charts from maistra/istio repository
  gen-check        Verifies that changes in generated resources have been checked in
  update-istio     Updates the Istio commit hash to latest on ${ISTIO_BRANCH_30}
  patch-istio-images  Patch the Istio images in the ClusterServiceVersion with the right tags

Build Dependencies
  kustomize        Download kustomize locally if necessary. If wrong version is installed, it will be removed before downloading.
  controller-gen   Download controller-gen locally if necessary. If wrong version is installed, it will be overwritten.
  envtest          Download envtest-setup locally if necessary.
  bundle           Generate bundle manifests and metadata, then validate generated files.
  bundle-build     Build the bundle image.
  bundle-push      Push the bundle image.
  bundle-publish   Create a PR for publishing in OperatorHub
  opm              Download opm locally if necessary.
  catalog-build    Build a catalog image.
  catalog-push     Push a catalog image.

Linting
  lint-scripts     runs linters against all shell scripts
  lint-go          runs linters against Go code
  lint-yaml        runs linters against YAML files
  lint-helm        runs linters against helm charts
  lint-bundle      runs linters against OLM metadata bundle
  lint-watches     checks if the operator watches all resource kinds present in Helm charts
  lint             runs all linters

This is the output after the change:
$ make help
build                Build manager binary.
bundle-build         Build the bundle image.
bundle               Generate bundle manifests and metadata, then validate generated files.
bundle-publish       Create a PR for publishing in OperatorHub
bundle-push          Push the bundle image.
catalog-build        Build a catalog image.
catalog-push         Push a catalog image.
controller-gen       Download controller-gen locally if necessary. If wrong version is installed, it will be overwritten.
deploy-example-kubernetes Deploy an example Istio resource on Kubernetes
deploy-example-openshift Deploy an example Istio resource on OpenShift
deploy               Deploy controller to the K8s cluster specified in ~/.kube/config.
deploy-olm           Builds and pushes the operator OLM bundle and then deploys the operator using OLM
deploy-yaml          Outputs YAML manifests needed to deploy the controller
docker-build         Build docker image with the manager.
docker-buildx        Build and push docker image for the manager for cross-platform support
docker-push          Push docker image with the manager.
envtest              Download envtest-setup locally if necessary.
gen-charts           Pull charts from maistra/istio repository
gen-check            Verifies that changes in generated resources have been checked in
gen-code             Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
gen-manifests        Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
help                 Show this help
install              Install CRDs into the K8s cluster specified in ~/.kube/config.
kustomize            Download kustomize locally if necessary. If wrong version is installed, it will be removed before downloading.
lint-bundle          runs linters against OLM metadata bundle
lint                 runs all linters
lint-watches         checks if the operator watches all resource kinds present in Helm charts
opm                  Download opm locally if necessary.
patch-istio-images   Patch the Istio images in the ClusterServiceVersion with the right tags
.PHONY               Generate nightly bundle
.PHONY               Build and push nightly docker image with the manager.
.PHONY               Generate everything
.PHONY               Runs the operator scorecard test. Needs a valid k8s cluster as pointed by the KUBECONFIG variable
run                  Run a controller from your host.
test                 Run tests.
undeploy-olm         Undeploys the operator from the cluster (used only if operator was installed via OLM)
undeploy             Undeploy controller from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion.
uninstall            Uninstall CRDs from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion.
update-istio         Updates the Istio commit hash to latest on ${ISTIO_BRANCH_30}

This is now pretty useless, since it's no longer organized by topic.

If you think organizing by topics is better, what does prevent us to implement this enhancement in upstream?

Upstream doesn't have that many targets:
$ make help
benchtest            Runs all benchmarks
build                Builds all go binaries.
clean                Cleans all the intermediate files and folders previously generated.
docker               Build all docker images
docker.push          Build all docker images and push to
docker.save          Build docker images and save to tar.gz
format               Auto formats all code. This should be run before sending a PR.
help                 Show this help
lint                 Runs all linters.
push                 Build and push docker images to registry defined by $HUB and $TAG
test                 Runs all unit tests

Also, if we were to add topics, we'd need to change the order of a lot of targets in the Makefile.

sgtm

Let's get this merged! The current make help is really broken

21:47:06 p1 {make-help} ~/dev/istio-operator$ make help

Usage:
  make <target>

Testing
  test                       Run tests.
  test.scorecard             Run the operator scorecard test against an existing cluster.
  test.integration.ocp       Run the integration tests against an existing OCP cluster.
  test.integration.kind      Deploy a KinD cluster and run the integration tests against it.

Build
  build                      Build manager binary.
  run                        Run a controller from your host.
  docker-build               Build docker image.
  docker-push                Push docker image.
  docker-push-nightly        Build and push nightly docker image.
  docker-buildx              Build and push docker image with cross-platform support.

Deployment
  install                    Install CRDs into an existing cluster.
  uninstall                  Uninstall CRDs from an existing cluster. Call with ignore-not-found=true to ignore resource not found errors during deletion.
  deploy                     Deploy controller to an existing cluster.
  deploy-yaml                Output YAML manifests used by `deploy`.
  deploy-openshift           Deploy controller to an existing OCP cluster.
  deploy-yaml-openshift      Output YAML manifests used by `deploy-openshift`.
  deploy-olm                 Build and push the operator OLM bundle and deploy the operator using OLM.
  undeploy                   Undeploy controller from an existing cluster. Call with ignore-not-found=true to ignore resource not found errors during deletion.
  undeploy-olm               Undeploy the operator from an existing cluster (used only if operator was installed via OLM).
  deploy-example             Deploy an example Istio resource to an existing OCP cluster. Same as `deploy-example-openshift`.
  deploy-example-openshift   Deploy an example Istio resource to an existing OCP cluster.
  deploy-example-kubernetes  Deploy an example Istio resource on an ecisting cluster.

Generated Code & Resources
  gen-manifests              Generate WebhookConfiguration and CustomResourceDefinition objects.
  gen-api                    Generate API types from upstream files.
  gen-code                   Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
  gen-charts                 Pull charts from istio repository.
  gen                        Generate everything.
  gen-check                  Verify that changes in generated resources have been checked in.
  update-istio               Update the Istio commit hash in the 'latest' entry in versions.yaml to the latest commit in the branch.

Build Dependencies
  helm                       Download helm to bin directory. If wrong version is installed, it will be overwritten.
  controller-gen             Download controller-gen to bin directory. If wrong version is installed, it will be overwritten.
  envtest                    Download envtest-setup to bin directory.
  bundle                     Generate bundle manifests and metadata, then validate generated files.
  bundle-build               Build the bundle image.
  bundle-push                Push the bundle image.
  bundle-publish             Create a PR for publishing in OperatorHub.
  bundle-nightly             Generate nightly bundle.
  bundle-publish-nightly     Publish nightly bundle.
  patch-istio-crd            Update Istio CRD's openAPIV3Schema values.
  catalog-build              Build a catalog image.
  catalog-push               Push a catalog image.

Linting
  lint-bundle                Run linters against OLM metadata bundle.
  lint-watches               Checks if the operator watches all resource kinds present in Helm charts.
  lint                       Run all linters.
  format                     Auto-format all code. This should be run before sending a PR.
  help                       Show this help.

I did not get this pretty output. I got:
$ BUILD_WITH_CONTAINER=0 make help
common/Makefile.common.mk:120: warning: overriding recipe for target 'help'
Makefile.overrides.mk:19: warning: ignoring old recipe for target 'help'
egrep: warning: egrep is obsolescent; using grep -E
build                Build manager binary.
build                Build manager binary.
bundle-build         Build the bundle image.
bundle-build         Build the bundle image.
bundle               Generate bundle manifests and metadata, then validate generated files.
...

I did not get this pretty output. I got:
$ BUILD_WITH_CONTAINER=0 make help
common/Makefile.common.mk:120: warning: overriding recipe for target 'help'
Makefile.overrides.mk:19: warning: ignoring old recipe for target 'help'
egrep: warning: egrep is obsolescent; using grep -E
build                Build manager binary.
build                Build manager binary.
bundle-build         Build the bundle image.
bundle-build         Build the bundle image.
bundle               Generate bundle manifests and metadata, then validate generated files.
...

just leave out the BUILD_WITH_CONTAINER=0

Try again now! It should work even with BUILD_WITH_CONTAINER=0.
I had to make our imports from common explicit instead of using import, that also avoids the egrep error.

/retest

/retest


Add cookie support

This project really needs to support storing and automatically re-sending cookies, just like a browser would.
I'll work on an PR for this:
I'll work on cookies in my fork since you seem to be working on auto-save.
I hope to have some progress by the end of the week; will (hopefully) open a draft-PR until then
Originally posted by @Tanja-4732 in https://github.com/usebruno/bruno/discussions/385#discussioncomment-7571305

I am trying to move away from Insomnia or Postman, I would like to try Bruno, but I can't without cookies. I'd love to see this feature!

+1 on cookie support. It's the only thing preventing my team from dumping Postman and moving over to Bruno. Far too many systems rely on a session cookie as part of their authentication flow.

+1 for many at our company. We use sessions on some of our node apps and the session id changes every time because the cookie is not saved causing a new session each time so no user info is persisted.

Yes yes, I'll try to get started on this till about Monday,
though I'm not very familiar with the codebase yet

I'm trying to get cookie based auth working, but I don't think its sending the cookie header. Here is what I have in the Headers tab, which works in Postman but not Bruno:

I tried setting the session cookie to valid string literal session ids too, both encoded and not encoded. Same issue.
Also FYI this is what I have in the post script to decode the cookie response and set it as a context var. This part is working well.
const header = res.getHeader("set-cookie")?.[0];
if (!header) return;

const session = header.substring(
  header.indexOf("=") + 1,
  header.indexOf(";")
);
bru.setVar("session", decodeURIComponent(session));
console.log(`session: ${bru.getVar("session")}`)

I see that it is sending the cookie header actually. But its not sending it as a signed cookie like it is in Postman. Unfortunately this is a blocker for our team's adoption of Bruno. I've been waiting for an API client that saves collections to file systems. I hope this feature gets added so we can migrate.

I'm trying to get cookie based auth working, but I don't think its sending the cookie header. Here is what I have in the Headers tab, which works in Postman but not Bruno:

I tried setting the session cookie to valid string literal session ids too, both encoded and not encoded. Same issue.
Also FYI this is what I have in the post script to decode the cookie response and set it as a context var. This part is working well.
const header = res.getHeader("set-cookie")?.[0];
if (!header) return;

const session = header.substring(
  header.indexOf("=") + 1,
  header.indexOf(";")
);
bru.setVar("session", decodeURIComponent(session));
console.log(`session: ${bru.getVar("session")}`)

I got this working by changing the auth type to "No Auth". Now authentication works!

So far, I've added a button for a cookie tab, which is yet to be implemented:

I've been waiting for an API client that saves collections to file systems

Same, but we seemingly all need cookie support for this to be of basically any use.
I think I may have some form of this available within the next week, provided I find the time.
See #969 for details

I've been waiting for an API client that saves collections to file systems

Same, but we seemingly all need cookie support for this to be of basically any use.
I think I may have some form of this available within the next week, provided I find the time.
See #969 for details

More good news:

We now have a basic cookie tab;
But the under-the-hood features/implementation is not yet here

More good news:

We now have a basic cookie tab;
But the under-the-hood features/implementation is not yet here

Basic cookie store works now
However, I've yet to implement sending them along automatically.

Notice, how the login now correctly sets the session_token collection-wide in the example below:
(but #969 still needs to be merged first)

Update:
It's working now
My fork on branch feature/cookies now has out-of-the-box cookie support :tada:

Someone please review #969

Thanks cookie authentication is working well!

Well, while my fork https://github.com/Tanja-4732/bruno/tree/feature/cookies worked very well for my usecases,
there are isssues:
Mostly related to the fact that I did cookies per-collection, whereas @helloanoop wanted them app-wide, and I forgot to consider host names, as I only developed against one API server.
See this discussed in https://github.com/usebruno/bruno/pull/969#issuecomment-1818784536

All in all, my PR #969 seems very dead rn, but at least my work may have showed that cookie support is important enough  to be implemented sooner than planned originally :woman_shrugging:
So @joe-gre, your

Thanks cookie authentication is working well!

may actually reference e1a96e0 rather than my #969

Thanks again for all the :tada:s, :heart:s, and the :+1:s, I really appreciate them :blush:

Hello , Thanks a lot for the work and this really promising Bruno :dog2:
If found something annoying with cookie that i think may be of interest for implementer
A feature that would be helpfull with cookie support, would be ability to disbale cookie jar at a request or collection level.
My really annoying use case: When doing CSRF mitigation by the use of double submit cookie ( good explanation here  ) , if cookie are auto set and cannot be disabled, this make CSRF handling mandatory.
If one can just disable the cookies, no more cookie no more CSRF, no more problem :smile:
FYI functionnality look like that in postman:

@DrGrognon You can conditionally disable cookies in v1.3.0

@helloanoop I just tried it, and it do the job perfectly :smiley:  !
I'm really pleased to see such good momentum and spirit around Bruno,
Thanks a lot an keep going :dog: :heart:

Thank you for all your cookie related extension, this one is really mandatory for my company.
Unfortunately current implementation does not cover my case:
If we have a chain of requests, i.e: request -> 302 re-direct -> 302 re-direct -> page.
Cookies from the first re-direct response are not propagated further.
In my case I have a POST request with auth params as a first step where correct cookies with authorized JSESSIONID are set, but they are lost after following re-direction with 302 code and overwritten by newly set JSESSIONID without auth from the target page.
curl handles such request properly with --cookie-jar, postman handles it OOB, would be great if Bruno could support such case too.

Was looking at the docs trying to copy a cookie from the browser over to Bruno to test but couldn't figure out a way to and realized that there isn't a way to do it. Hopefully this will be added soon enough so I no longer need to use Postman as it is essential to my current workflow.

I had a free weekend to dive a little deeper:
@lltr I've added a capability to set cookies manually in the fork: https://github.com/r-polunin/bruno/tree/cookies-for-redirects
You can try to use this one, while we wait for official version of the feature :D
(It doesn't show Secure, HttpOnly etc. property yet and I don't promise stable behaviour, but it worked for me, possibly it will cover your cases too)

@helloanoop, regarding my previous comment:

If we have a chain of requests, i.e: request -> 302 re-direct -> 302 re-direct -> page.
Cookies from the first re-direct response are not propagated further.
This happens because of the way how axios works:
https://github.com/axios/axios/issues/3862
I've raised a pull request to merge a workaround for this one:
https://github.com/usebruno/bruno/pull/1463
Could you please comment on the changes?

Hi. First of all, thanks for your contribution, cookies are pretty much the only feature I really need and that prevented me from switching to Bruno. I got a bit confused, so I may ask if anyone can tell me what the current status of the cookie implementation is? I assume it has not officially been merged, but how profound is the current implementation?

Hi. Thank you all for this awesome feature. This was really important for us. @helloanoop Is there any chance that we see the cookie support also in Bruno CLI any time soon? It is a bit annoying that we can not run our tests in the CLI the same way as we do with the collection runner.

Hello, thanks for the feature, like kizilcali81, i asking if the feature should be avaiable in the cli too ?

As a workaround I'm turning off the automatic cookie handling in preferences as mentioned here and then I run req.setHeader("Cookie", '{{cookie}}') in the pre request script

Is it possible to do something similar to Insomnia where you can set the authorization header to Cookie <cookie_key> directly into the headers field without scripting? I've tried things like like Cookie {{<cookie_key>}} Cookie {{headers.cookie.key}} Cookie {{cookie.key}} Cookie {{req.cookie.key}} Cookie {{request.cookie.key}} and I even tried replacing the Cookie auth type to Bearer and nothing worked.

where you can set the authorization header to Cookie <cookie_key> directly into the headers field without scripting

I'm not sure if I understood your request correctly, but I assume you'd like the following header in your request:
Authorization: Cookie <cookie_key>
If that's correct, here's how to achieve this:

Choose Auth "No Auth"
Add Header with name "Authorization" and value "Cookie {{cookie}}"
save your cookie value into the environment variable named "cookie"

To my knowledge, what's not possible without scripting at the moment is feeding a cookie value directly into a variable, though.

i need to add cookies for a top level domain.  it seems this is not happening.

login.example.com -> get cookie for example.com
site.example.com -> does not apply example.com cookies

It doesnt work


Rustual Boy Help.

so is there a way to reconfigure rustual boy like remapping the puttons/keys or using a controller. also are there more arguments to the exe to full screen the program.

There are no ways to do this with the current frontend. The in-the-future libretro implementation will lean on retroarch/other frontends to do this.


feat: #231 Add input-changed event for vs-select

For #231. Added input-changed event to let users pass their method to run whenever there's a change in input.

okay, I am having a issue about input-changed $event. I tried that but nothing worked out. I already asked question for that in stackoverflow could you please check it out?


Adds GetPlate Client Function

I will merge thise pending This PR since this function is badly done in qb-core and doesn't really match their own style guides / rules / whatever.


How to Trust certificates when publishing for other users?

The guide is excellent, but doesn't cover some details concerning how to "Trust" a created certificate.
When I follow your guide and choose "Create..." to ceate a new temporary self-signed certificate for testing. Then after filling out the details:

I get the option to "Trust" the newly generated certificate:

Now; if I press "Trust" and finish the Wizzard, the App is published and I can choose to install from the generated MSIX file.
But if I ask my colleague to try an install the app on his PC, then the install is not allowed because the certificate are not trusted on his PC.
If we install the certificate in the "Trusted Root Certification Authorities", then we are still not able to install the app.
I get the same result if I choose not to trust the certificate and try to install the app on my own PC.
I need to test the app on other PC's. So, how do I manually "Trust" the certificate on other PC's?
BTW. The

button doesn't work properly on my PC. When I press it the code will be generated and put into the "..\bin\Debug\net6.0-windows10.0.19041.0\win10-x64\AppPackages" folder, but the content are not being copied to the "Installer location"

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

ID: a9a8421b-ca5d-96e3-35ab-60118e356017
Version Independent ID: a9a8421b-ca5d-96e3-35ab-60118e356017
Content: Publish a .NET MAUI app to a folder for Windows - .NET MAUI
Content Source: docs/windows/deployment/publish-visual-studio-folder.md
Product: dotnet-mobile
Technology: dotnet-maui
GitHub Login: @davidbritch
Microsoft Alias: dabritch

We did not have issues installing our app on another machine (Windows 10) following the same steps.  The only difference in our build is we used the Release configuration instead of Debug.
After copying and pasting the resulting AppFolder folder on the destination computer the following steps were taken:

double click on the Security Certificate in the folder (which launched Certificate Import Wizard)
click Install Certificate button
click "Local Machine" for Store Location and click the Next button
click "Place all certificates in the following store", click "Browse..." button, click "Trusted Root Certification Authorities" then click the OK button
click the Next button
click the Finish button
Within the app folder, double click the MSIX file.  The Install button is now enabled.

Following these steps, the app installed and launched on the destination computer without issue.


Rename Hydrate -> HydrationBoundary

Rename Hydrate -> HydartionBoundary
Remove useHydrate hook
Update migration guide

Fixes #4692

Codecov Report

:exclamation: No coverage uploaded for pull request base (v5@b3f3c59). Click here to learn what that means.
Patch has no changes to coverable lines.

:exclamation: Current head bcf347a differs from pull request most recent head 739d332. Consider uploading reports for the commit 739d332 to get more accurate results

Additional details and impacted files
@@          Coverage Diff          @@
##             v5    #4821   +/-   ##
=====================================
  Coverage      ?   91.04%
=====================================
  Files         ?       85
  Lines         ?     3485
  Branches      ?      884
=====================================
  Hits          ?     3173
  Misses        ?      291
  Partials      ?       21

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@TkDodo Will open a different PR for codemod. Also wanted to ask if we need to update the existing documentation as well or just the migration guide?

yes, the docs as well please ❤

Done @TkDodo


How to start an activity when scratch is reveal ?

@sharish

Check the README once more you will understand it again. The view is provided with reveal listener callback that helps you to do that.
ScratchImageView scratchImageView = new ScratchImageView(this);

scratchImageView.setRevealListener(new ScratchImageView.IRevealListener() {
    @Override
    public void onRevealed(ScratchImageView tv) {
        // on reveal
      startActivity(new Intent(YourCurrentActivity.this, YourNewActivity.class);
    }

    @Override
    public void onRevealPercentChangedListener(ScratchImageView siv, float percent) {
        // on image percent reveal
    }
});

Thanks,
Harish


Test PATH_INFO instead of REQUEST_PATH for path exclusion

Context
fixes #15 - it appears that in some cases REQUEST_PATH is not provided, whereas PATH_INFO is required to be present
Changes

s/REQUEST_PATH/PATH_INFO

@bentheax lemme know if u need me to release a new version on ruby gems for this

need me to release a new version on ruby gems

@yoshdog that would be great I've got https://github.com/envato/jwt_signed_request/pull/17 for the version bump/change log.


Can I use terratest with vmware vsphere?

My org has self hosted vmware vsphere and we are installing kube and few other things on top of vmware. Can I use terratest to validate the deployment? Is there any documentation on it?

Terratest has native helpers for working with AWS, GCP, Azure, Kubernetes, Docker, Packer, Linux (via SSH), and a few other things. So if you're using any of these technologies, Terratest helpers may be of use to you. There are no native helpers for VMWare, so if you need direct helpers for that, you'll have to create them yourself.


change legend labels fontColor onHover

Hello,
I wish to be able to modify the color of the text (label) of the legend when one passes the mouse over it.
I searched without finding a solution.
Can this be implemented in a future release via an attibut like hoverFontColor?

The best way to achieve this will be to use an HTML legend. Then this change can be done with CSS. There's an HTML Legend Sample that shows how to achieve this


resolve absolute paths correctly on windows - fix #1

Fixes https://github.com/jonschlinkert/parse-git-config/issues/1 with tests

awesome, great PR! well done. I'll merge in a few!