feature: decorate descriptions with highlighting, color-changing, etc.

Did you check the docs?

[X] I have read all the which-key.nvim docs

Is your feature request related to a problem? Please describe.
I wish descriptions could show, rather than describe, a keybinding.
Here are some "upgrades" to the desc field that hopefully illustrates at least the idea behind the feature:

desc = "select in (" -> desc = {"fiz({buzz})", highlight = "v-highlight"}
 desc = "Next conditional start" -> desc = {"->{i}f conditonal", highlight = "cursor-pos"}
desc = "Prev conditonal start" ->  desc = {"{i}<-f conditonal ...", highlight = "cursor-pos"}
desc = "Select rhs of assignment": desc = {"let foo {=} {bar}", highlight = ["cursor-pos", "v-highlight"]}

Describe the solution you'd like
From my reading of documentation, brief perusal of how plugins highlight ui-text, perusing search engines and seeing what ChatGPT had to say,  I would guess that what I am proposing is deceptively difficult.
Ideally, I would be able to put some standard formatting characters around the text, such as using ANSI, and that would JustWork^tm. failing that:
some sort of interface where you can use some sort of format string to fine tune string decorations:
{bold;foo} bar -> foo bar
{bg:0xdead44, fg:0x12ab44;hello world} -> "hello world" but wth the hex colors used for setting background and foreground
under the hood, one possibility would be to edit the color scheme to append a new highlight group, and somehow attach the chosen text-segments to said group? honestly, at that level, I am way out of my depth.
Describe alternatives you've considered
I'm not familiar with any existing solutions/frameworks that that allow you to ergonomically decorate ui text with highlighting, bolding, etc in a "global" way. From what I gather, it's non trivial to do this: it involves deriving and tracking text positions, managing context and updates, etc. I suspect this might be more of an nvim-thing, where the goal would be to expose an ergonomic interface that's built into nvim directly.
One possibility would be to add an additional
Additional context
Hope you had a nice holiday :)

I don't get what you mean by the examples
it makes no sense to use escape sequences or anything similar in neovim. Imo what would make the most sense is being able to provide a table like you pass it to set extmarks which contains tables of text, hl chunks

I don't get what you mean by the examples

Suppose you have a binding that has the description "visually select the rhs of the next assignment operation" (provided by treesitter-textobjects). To read what the keybinding for that does is useful, but what would be particularly handy, is to see what it would do.
Instead of a description in the literal sense, you can add visual cues to the descriptions.
M.some_fn = function()
--        ^ cursor here
end

to show the WhichKey window at this point with the binding mentioned, the description would look more like "let lhs = rhs"
I'm limited with text rendering here. Imagine the bold part looks like it's been selected under visual mode, but ideally, it would visually prompt "if you use this keybinding, the effect will look like this"
...even better, the prompt might look like "M.some_fn = function()" (but that's probably out of scope of this feature request)"
Additionally, you can add various visual cues to your descriptors, and it can present patterns that reduce cognitive load. If you have organised bindings for searching under <leader>f, there's different classes of search: lsp, grepping strings, searching files, searching marks, etc. You might set all LSP commands to be LSP: <actual search>, This feature would allow you to group the LSP:  prefix with a common visual cue (bg-color, for example).
At the high-level: the cognitive task of parsing information presented by the whichkey window is eased by allowing the use of visual cues through a colorscheme-like mechanism.

it makes no sense to use escape sequences or anything similar in neovim. Imo what would make the most sense is being able to provide a table like you pass it to set extmarks which contains tables of text, hl chunks

This is where this post starts getting out of my wheelhouse, and I doubt I can add any value to that aspect of the discussion.

imo this is completely out of scope because it's likely require rewriting a big part of the plugin to allow dynamic labels
but in the end that's up to folke

That's probably reasonable. My take at this point is that this sort of thing would be handy generally, but would be particularly applicable to whichkey. There are, of course, means for plugin developers to decorate their text to present visual cues, but whichkey is particular in the sense that plugin users are expected/empowered to define the text in their UI.


Inject additional headers

Context
The goal of this change is to enable injecting custom headers to be sent as part of the API request.  Ot is useful when Langfuse is deployed behind a proxy that validates some access policies (for ex: Cloudflare Tunnel). Many other use cases can be covered by this change as well.
Design
Optionally, the user can specify additional headers as follow:
from langfuse.client import Langfuse

langfuse = Langfuse(
        public_key=env.LANGFUSE_PUBLIC_KEY,
        secret_key=env.LANGFUSE_SECRET_KEY,
        host=env.LANGFUSE_HOST,

        # Adding custom headers
        additional_headers = {
            # For example: Inject Cloudflare Service Token
            'CF-Access-Client-Id': env.LANGFUSE_CF_ACCESS_CLIENT_ID,
            'CF-Access-Client-Secret': env.LANGFUSE_CF_ACCESS_CLIENT_SECRET,
        }
)

Hi @yassineselmi , thanks so much for the contribution!
The situation is a bit tricky: We use Fern for the generation of our Python code. It has been super helpful so far generating boilerplate code for us. Much of this code was touched by your PR. Unfortunately, they do not allow to have a list of headers in their configurations: https://buildwithfern.com/docs/definition/api-yml#api-wide-headers.
I fully understand your request though. What about we add one header to the SDK that you can use for your use case? Unfortunately this would already have a pre-defined naming. Would that work for you?

The static-name headers solve my issue for sure, but I'm wondering if this will be considered as a useful feature for others :p .
So, you mean that you are going to add:
CF-Access-Client-Id and CF-Access-Client-Secret headers?

The static-name headers solve my issue for sure, but I'm wondering if this will be considered as a useful feature for others :p .
So, you mean that you are going to add: CF-Access-Client-Id and CF-Access-Client-Secret headers?

Yes, you are right. We are currently considering how to make the Python SDK more usabel (Pydantic models, Headers, and more. Would you also be fine with different names? We could for example add something like X-Langfuse-User-Defined-1, X-Langfuse-User-Defined-2, X-Langfuse-User-Defined-1 as an intermediary solution until we revamped this SDK. Would different names than the ones described by you work?

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Yassine Selmi seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

unfortunately all parts within /api cannot be modified as they are generated by https://github.com/fern-api/fern
happy to add this once fern supports custom header passthrough


add pluckKeyOf operator that persists type

pluckKeyOf
Works the same as pluck expect that it uses the TypeScript keyOf to persist the type of the property.

already fixed in rxjs


bugs

Challenge Use a CSS Class to Style an Element has an issue.
User Agent is: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
 I think the code above is from an earlier challenge. The directions state:

Inside your style element, change the h2 selector to .red-text and update the color's value from blue to red.

Give your h2 element the class attribute with a value of 'red-text'.

but you haven't attempted that in the code above. Can you be more specific about what bug you are experiencing?

@kaiTEM Please provide more information about the issue you are experiencing.

well, that code is incorrect.  but we could wait for their respond.

@kaiTEM,
Thanks for reporting this. But your code is incorrect.
GitHub Issues are for reporting bugs on the website only.
Please use the Help chat room for getting challenge related help.
P.S. If you still have a problem with this challenges. please respond back to us at here. Thanks
Happy Coding!


Unable to reuse Server Objects defined in Components.servers field

Hello everybody,
While implementing 2.3 support into tooling I've noticed couple of inconsistencies/errors in the specification.
As AsyncAPI 2.3.0 introduced new Components.servers field, there is no way how Server Objects defined in this map can be used later in the definition.
Usage in Servers Object
I assume first intended usecase was to reference Server Object defined in Components.servers field in Servers Object. This intention is clear from the release article:

What the article is showing is not possible according to the spec as the Servers Object pattern field only allows Server Object and not Server Object | Reference Object.
Usage in Channel Item Object.servers field
With this I'm not 100% sure of the intended usage. The specification says following:

This limits using referencing Server Object to ones defined Servers Object (by name). Should we allow referencing the Server Object even from Components.servers field as well?
I'll provide a PR in a couple of minutes.

Good catch!

This limits using referencing Server Object to ones defined Servers Object (by name). Should we allow referencing the Server Object even from Components.servers field as well?

That would be a new feature, as regardless of what you define in your components sections, servers are not "active" until referenced under servers. They are nothing but reusable chunks. So string still makes sense to use for Channel Item Object.servers. 🙂

That would be a new feature, as regardless of what you define in your components sections, servers are not "active" until referenced under servers. They are nothing but reusable chunks. So string still makes sense to use for Channel Item Object.servers. slightly_smiling_face

Right, I assumed it was like you explained but I'd rather asked ;] Having said that, maybe it warrants clarification in the spec? But maybe not...not sure.

Right, I assumed it was like you explained but I'd rather asked ;] Having said that, maybe it warrants clarification in the spec? But maybe not...not sure.

Could definitely be now that you can define servers in multiple places 🤔 Maybe another issue for further discussing that?

Yeah I think it's worth discussing further. If agreed, I'll extract part of this issue regarding servers to a new one.

This issue can be now closed as it got merged and released. @char0n

@smoya thanks, closing.


Add Repository to Package.json

Currently, there is no easy way to get from NPM to the source code, this PR adds the relevant package.json metadata to fix this.

Fixed in https://github.com/mdingena/att-string-transcoder/commit/719b95ac069ac5a1372c9dd8609d1851e63949ba, thanks!


HybridProperty with default implementation

We don't use Impl suffixes. Also, please, rename source() to getSource(). Otherwise everything is fine.

Would "SimpleHybridProperty" work as a name?

Yes, that name would be ok.


Feat: define encrypted/secret environment variables

- Do you want to request a feature or report a bug?
It's a feature !
- What is the current behavior?
Not being able to store secret credentials in Netlify
- What is the expected behavior?
Being able to store encrypted credentials to external services like an API key.

@DirtyF I've been thinking about the same thing! Basically a command to sync the build environment variables stored in Netlify's UI with a local .env file.

Truth is this feature was asked by @pixelastic because you need to pass Algolia's credentials 🔑 to build you search index and push it to your account ⬆ .

I definitely agree with you, this is critical.   This is a platform level change we are current interested in and tracking.  Since this doesn't appear to be specifically related to the CLI, I'm going to close this issue.  If I've left something CLI specific unaddressed, please let me know and we can re-open.  I'm going to do some research to see how far off this is and if its not coming soon, we can perhaps explore a cli related solution.

Just to confirm, this request is to specifically support better ENV secrete management in our builds bots, similar to what appveyor and travis have, correct?

Yes, this is what I was looking for

Hmm...am I wrong or Build environment variables are not available for manual deployments...?


下载到根目录无法使用

`03-30 11:46:04 [ERROR] nonebot | Failed to import "nonebot_plugin_heweather"
Traceback (most recent call last):
File "/cobudy/omega-miya/bot.py", line 57, in
nonebot.load_plugin("nonebot_plugin_heweather")
File "/usr/local/lib/python3.9/dist-packages/nonebot/plugin/init.py", line 984, in load_plugin
return context.run(_load_plugin, manager, module_path)

File "/usr/local/lib/python3.9/dist-packages/nonebot/plugin/init.py", line 953, in _load_plugin
module = manager.load_plugin(plugin_name)
File "/usr/local/lib/python3.9/dist-packages/nonebot/plugin/manager.py", line 155, in load_plugin
return importlib.import_module(name)
File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "/usr/local/lib/python3.9/dist-packages/nonebot/plugin/manager.py", line 267, in exec_module
super().exec_module(module)
File "", line 855, in exec_module
File "", line 228, in _call_with_frames_removed
File "/cobudy/omega-miya/nonebot_plugin_heweather/init.py", line 4, in
from nonebot.adapters.onebot.v11 import Bot, MessageEvent, MessageSegment
File "/usr/local/lib/python3.9/dist-packages/nonebot/adapters/onebot/init.py", line 1, in
from .v11 import Bot as V11Bot
File "/usr/local/lib/python3.9/dist-packages/nonebot/adapters/onebot/v11/init.py", line 16, in
from .adapter import Adapter as Adapter
File "/usr/local/lib/python3.9/dist-packages/nonebot/adapters/onebot/v11/adapter.py", line 9, in
from nonebot.exception import WebSocketClosed
ImportError: cannot import name 'WebSocketClosed' from 'nonebot.exception' (/usr/local/lib/python3.9/dist-packages/nonebot/exception.py)
`

那为什么看文档呢


convert Mxnet model to IR ,there are "NotImplementedError"

Platform (like ubuntu 16.04/win10):
ubuntu 16.04
Python version:
3.6
Source framework with version (like Tensorflow 1.4.1 with GPU):
mxnet 1.2.1 with GPU
Destination framework with version (like CNTK 2.3 with GPU):
caffe new version with GPU
Problem description:
I want convert the model from mxnet to IR,    but  the Tool indicate "MXNet Parser has not supported operator L2Normalization with name l2normalization107"
I think it is NotImplemented error,  and Focus on the following  implementation.......

Hi @llpspark , MMdnn can only convert the network architecture part. Maybe you need to skip this part.

@namizzz thank you

@llpspark hi , I have met this problem too. Have you solved this issue?

Hi @xuguozhi ,set inNodeName and dstNodeName to remove these part.

Hi @namizzz ,
I searched a lot of post about this error but I saw all of your answers were not that clear.
I just wonder HOW I could remove these parts to completely remove this error.
mmtoir -f mxnet -w model-0000.params -n model-symbol.json -d ir --inputShape 3,112,112 -inode ??? -node ???


Game Pass Browser - Feature Request - Remove games from Playnite when they are removed from Playnite

I imagine this would be a bit more complex to add, but the ability to remove games from Playnite when they are removed from Game Pass would be the final thing to effectively turn this into a full library plugin as well as a browser.
As discussed on Discord, probably only removing games that you have not played (and so are not going to be re-added by the Xbox plugin) would be the way to go.
Maybe the option of tagging games that you have played with a 'Formerly on Game Pass' tag when they are removed (or similar) might be possible? Also a notification could I guess prompt you to uninstall a game with a link to Add\Remove Programs? Just a few thoughts anyway.

Remove game from Playnite library feature done in https://github.com/darklinkpower/PlayniteScriptExtensions/commit/b96cc5872d3738aa605bc2978e271af98abb2900

Closing as previous comment.


[aws-sdk-cpp] Add find_dependency to AWSSDKConfig.cmake and fix usage

The AWSSDKConfig.cmake dependency provided by the upstream lacks find_dependency. Add it.
AWSSDKConfig.cmake should be used as the main entry point.

Fixes https://github.com/microsoft/vcpkg/issues/7373#issuecomment-738303660

Thanks!


[Design Review] Upload

closes #480
closes #473
closes #456
closes #467
Note

yarn install to pull in the DSR changes to the pagination component
Screenshots show a checkmark instead of an exclamation mark during errors/warnings. This is changed

Changes

enhancement(Upload): Updated content to match the excel and figma
feat(Upload): initial load (get submission latest) 4xx/5xx's redirect to the 500 page
style(Upload Alerts - Links): underlined
style(Upload): Updated based on https://github.com/cfpb/sbl-frontend/pull/430#issuecomment-2103750823
enhancement(download report): removed caching headers -- using submissionId so the browser caching is fine

Extra note

The two scenarios not added to this design review:

VALIDATION_EXPIRED (Needs a big file to test the two minute limit)
If initial GET LATEST SUBMISSION fails, redirect to 500 page

The button changes are not in yet

Screenshots
Introduction

Never uploaded before

Pass
pass_123456789TESTBANK456_small.csv

Warnings
logic-warnings_small.csv

Errors
logic-errors_small.csv

SUBMISSION_ACCEPTED - no warnings
pass_123456789TESTBANK456_small.csv

SUBMISSION_ACCEPTED - warnings
logic-warnings_small.csv

File size upload limit (Can use 2MB test limit -- normally 2GB)
logic-errors_medium.csv (2MB)

Incorrect file type (renamed to `.csv) -- General Catch-All Validation Error
alf-picture copy.csv

Incorrect file type (example .png)
alf-picture

Submission Malformed
format-error__missing-more-columns.csv

@natalia-fitzgerald
TODO:

The backend/frontend errors are almost reviewed, @angelcardoz is going to take a peek at them

@shindigira
I took a look at the screenshots posted above and I have some initial feedback in advance of our design review.

Check the vertical space between the body text and the "Replace file" button. It looks like the space in your image is 30px instead of the 15px shown in the mock-up
A number of the inline links in the error messages shown above are missing the underlines
Update intro copy and body text to match the content shown in Figma
Update success and errors form and field level alerts to the content shown in the "Upload and validation messages" spreadsheet
Vertical space between bottom of well and navigation buttons should be 30px
This may be right already but I wanted to double check -- the space above and below the horizontal rule line in the well should be 30px
Navigation at the bottom of the page should only include the single "Save and continue"

@shindigira
This is looking great! I think we're getting close. I'll check AWS next but here's feedback based on the screenshots.
A few content updates to the base page:

Update content intro content (large and small text blocks) to match Figma.
Update the content within the well to match Figma

I compared Figma to the screenshots and noticed some missing scenarios in the screenshots. I know that you mentioned missing ones in your post above but just so that I can be sure we're referencing the same ones, these are the ones I didn't see in the images (above):
UPLOAD_FAILED (500 error, upload fails to reach S3 bucket)

Upload file (VALIDATION_EXPIRED) -- you did mention above that this one is in progress

Generic 400s, 500s, etc (upload)
If a user uploads a file and the server fails for whatever reason that's not included in the errors above, then this generic message is shown.

@shindigira
Listing some additional changes here so they aren't missed:

Button text: Change "Upload your file" to "Upload file"
Button text: Change "Replace file" to "Upload new file"
Change "Return to Filing Overview" to "Go back" and have this go back to the previous page (even if it's Provide type of financial institution)


Drop group-id restrictions

Adding a comment so that I don't have to go through the challenge of parsing this title again haha :). "Drop" is an attributive noun here, and this issue is about implementing restrictions on which items can be dropped in which boxes in FITB-Drop questions.

Current status - each question has one "group" with the questions question_id as the group_id. This prevents drag/drop between different questions. Closing this issue would require allowing the specification of multiple groups with different IDs within a single question.


added modified files for contrailstatusmonitor

added modified files for contrailstatusmonitor, More tests will be added later one by one

recheck

recheck ha

recheck ha.

recheck ha third time

recheck ha


undefined method bytesize for Hash

This works with an older (pre-0.7.0) version of signet. It seems like this possibly broke when hurley support was added.
NoMethodError: undefined method `bytesize' for #<Hash:0x007fd8c5dd31a0>
/project/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb:82:in `perform_request'
/project/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb:40:in `block in call'
/project/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb:87:in `with_net_http_connection'
/project/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb:32:in `call'
/project/gems/faraday-0.9.2/lib/faraday/response.rb:8:in `call'
/project/gems/faraday-0.9.2/lib/faraday/rack_builder.rb:139:in `build_response'
/project/gems/faraday-0.9.2/lib/faraday/connection.rb:377:in `run_request'
/project/gems/faraday-0.9.2/lib/faraday/connection.rb:177:in `post'
/project/gems/signet-0.7.1/lib/signet/oauth_2/client.rb:960:in `fetch_access_token'
/project/gems/signet-0.7.1/lib/signet/oauth_2/client.rb:997:in `fetch_access_token!'
/project/lib/tasks/fetch.rake:32:in `get_access_token'
/project/lib/tasks/fetch.rake:148:in `block (2 levels) in <top (required)>'

My code in fetch.rake looks like this:
    client = Google::APIClient.new
    auth = client.authorization
    auth.client_id = CLIENT_ID
    auth.client_secret = CLIENT_SECRET
    auth.scope = 'https://www.googleapis.com/auth/drive https://spreadsheets.google.com/feeds'
    auth.redirect_uri = "urn:ietf:wg:oauth:2.0:oob"

    print("1. Open this page:\n%s\n\n" % auth.authorization_uri)
    print("2. Enter the authorization code shown in the page: ")
    auth.code = $stdin.gets.chomp
    auth.fetch_access_token!(:connection => client.connection)
    access_token = auth.access_token

    return access_token

D'oh! Looks like the older versions of api client omit the form encoding middleware. Just pushed 0.7.2 which should fix the issue (doesn't assume the middleware exists for faraday)


Fix the ROT13 link in ceasars cipher challenge

Added the target='_blank' attribute to the ROT13 links.
Tested locally.
closes #6352

Thanks for the fix :+1:


Nearby moving from the phone's default browser to webview

Guys, I just wanted to have a thread on your experiences with Nearby moving from using the default browser to open a URL to using Webview.

Its actually using Chrome Custom Tabs which is almost like using the browser, except it can load faster and makes it easier for users to navigate between a list of items.
For those unaware, Custom Tabs use the Chrome application to render the page, but embedded within a little wrapper inside another application.  The pages will still share users' cookies and so forth, and it's easy to pop out into browser UI, bookmark, etc if you like.

Cool thanks! Is there anything going on with Chrome for iOS/Android?

This is a negative for us because Chrome Custom Tabs does not seem to support the Progressive Web App's automatic "add to home screen" pop up.


Update docker to v23.0.3

This should fix CVE-2023-28840, CVE-2023-28841 , & CVE-2023-28842 (none of these actually affect config sync)
Also update docker-credential-helpers to v0.7.0

/lgtm
/approve


On Windows, window edges extend outside of the screen when maximised

When maximising the Oni2 window on Windows, all four edges of the window extend outside of the screen and are not rendered. The following images demonstrate the issue:
This is the top-left of a regular floating window. This is expected behaviour, nothing out of the usual.

When maximising the window, you can see that both edges are slightly cut off. Besides the lack of spacing, this is apparent from the cut logo and the disappearing indicators for the file explorer and search.

While lazy resizing to a regular window, it becomes more apparent that the edges were not rendered. (Window isn't re-rendered during a lazy resize, filling the unrendered edges with content of the old render.)

I've stuck a comment on #1801 with some issues I've seen, I think that is related.

Thanks @Phaen for bringing this to our attention! I think this happens because we render over the default frame, and when the window is maximized, the frameshape changes, which we (well, more accurately SDL2) doesn't adjust for. I'll mess around with this either today or early this week to come up with a fix!

This is fixed now with #1823 - thanks @zbaylin !


When can we use Sampling explainer?

Hi @slundberg
when can I use a sampling explainer. Is it possible to use a Sampling explainer for random forest and other tree-based models?
What does the Sampling explainer actually do?

SamplingExplainer works for any python function so yes. It estimates SHAP values by sampling random permutations of the features. Like kernel explainer it gets more accurate when you have more samples. It converges with enough samples to the same final values as KernelExplainer (or TreeExplainer) but comes with different computational trade offs.

@slundberg
In that case if i have to use SHAP for some medical data, and use SamplingExplainer with 1000 samples out of 40000 records, wont I get incorrect results. And my shap is taking almost 2 hours for 1000 samples out of 40000 records.
And does Sampling explainer use 1000 samples to predict shap values for rest of records?

SamplingExplainer can be slow. But if you are using 1000 samples that will be for each of the 40000 records, which means 1000 * 40000 samples. How many samples you need per record depends on how many features are in your model. The best way to test this is see how close an explanation with 1000 samples is to one with 10000 samples. If it is always close then you are good with 1000 samples.

Thanks @slundberg for the explanation
So I have to use shap.sample(X, 1000) and shap.sample(X, 10000) and see which one gives closer results. And for this I need to run the one with original sample i.e., 40000 samples and see the results for comparison right?


Update textinput.md

Add working link to previews for all TextInput keyboardType values

Hello @ryeker-herndon-lark, thanks for spotting that issue! I have updated the PR and backported the changes to versioned docs.  Can you accept CLA so we can ship this correction?


Error: [libs\sql-schema-describer\src\postgres.rs:1039:28] no entry found for key

Command: prisma db pull
Version: 3.14.0
Binary Version: 2b0c12756921c891fec4f68d9444e18c7d5d4a6a
Report: https://prisma-errors.netlify.app/report/13939
OS: x64 win32 10.0.22000
JS Stacktrace:
Error: [libs\sql-schema-describer\src\postgres.rs:1039:28] no entry found for key
    at ChildProcess.<anonymous> (\node_modules\prisma\build\index.js:51905:30)
    at ChildProcess.emit (node:events:527:28)
    at ChildProcess._handle.onexit (node:internal/child_process:291:12)

Rust Stacktrace:
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: <unknown>
  10: <unknown>
  11: <unknown>
  12: <unknown>
  13: <unknown>
  14: <unknown>
  15: <unknown>
  16: <unknown>
  17: <unknown>
  18: <unknown>
  19: <unknown>
  20: <unknown>
  21: <unknown>
  22: <unknown>
  23: <unknown>
  24: <unknown>
  25: <unknown>
  26: <unknown>
  27: <unknown>
  28: <unknown>
  29: <unknown>
  30: <unknown>
  31: <unknown>
  32: <unknown>
  33: <unknown>
  34: <unknown>
  35: <unknown>
  36: <unknown>
  37: BaseThreadInitThunk
  38: RtlUserThreadStart

fixed by https://github.com/prisma/prisma-engines/pull/2939


update README for kubeflow

Yeah I'm going to merge this right away so we can point people to it. If you find a problem/typo, please feel free to just fix it right away without review.


Editing model for the memory viewer, feedback needed

This is a tricky one for me as we are not talking about editing files here. I only envision limited editing -- a byte here, a byte there, kind of thing. I am not expecting major bulky edits. Regardless, here are a couple of models
First of all, edits will only be allowed when the debugger is in paused state. Keep in mind that we are not part of the debugger or VSCode debug infrastructure. We are observers. We only find out the current state after a transition has already occurred. For instance, when a continue occurs, it takes us a while for us to find out.
Saving model (this must be decided first)

Instant: Save as you go. As you modify each byte, it will be saved instantly if possible. If the write fails, the user is notified and we revert the byte(s) back to its original state. Writes can fail because perhaps the debugger already continued or perhaps we are looking at a non-writable section. Even though the debugger supports write requests, you could still be looking at areas that are not writable. You will have a visual indication as to which bytes have been modified.
Batch: all the edits until you hit the Save button (explicit save command). This is what normal editors do. The danger here is that the user may have continued while some edits are unsaved. We will lose those edits.

Would be good to find out what other IDEs do. Eclipse uses the instant saving mode. This is what I am inclined to doing as well.
Undo/Redo

All undo/redo stacks are on a per stopped-session basis. ie, when the program continues, the undo stack will be cleared. Will be enabled on the next stop.
Undo/Redo will follow whatever saving model we use above

Cut/Copy/Paste

Cut: not allowed. Will be the same as Copy. This means, that we will not shift all the memory left when a byte is cut. Remember we are kind of an infinite scroll....so.
Copy: We put the selected cell(s) into the clipboard. But, what to put in the clipboard.. Surely not the hex bytes? Or the hex-bites as one format (text) and binary data as well. There may be some work to be done for how to select multiple disjoint cells, but lower priority.
Paste: Not sure how the clipboard works. It can contain multiple random things. Sure we can accept anything because it is random binary data. But doesn't seem right. It won't even work

It has been a long time since I worked with Clipboards so, I have to take inspiration from others. HexEdit is only place to look and maybe even make the formats compatible.

Comment by @benmcmorran. I had to manually move this comment from haneefdm/memview repo
One thought that comes to mind is that other extensions will likely already know which memory sections are writable (e.g. from an SVD). I haven't thought through the details too much yet, but it could make sense to provide an extension API so that the memory viewer knows which sections are safe to write to (or even read from). We end up doing something like this in our peripheral view, where we attempt to read memory in large chunks but break up the reads as needed when there are unreadable sections specified in the SVD.
EDIT: After some more discussion, it's clear that this wouldn't work for the bulk memory that users would probably be using a memory viewer for. It makes sense for looking at peripheral registers, but that use case is better served by a dedicated peripheral view.

1.Instant: Save as you go. As you modify each byte, it will be saved instantly if possible. If the write fails, the user is notified and we revert the byte(s) back to its original state. Writes can fail because perhaps the debugger already continued or perhaps we are looking at a non-writable section. Even though the debugger supports write requests, you could still be looking at areas that are not writable. You will have a visual indication as to which bytes have been modified.

At least that's how it works in the debuggers I've used. As long as I write a certain byte or half word or word, he will save it at any time

Similar extensions seem to already support write mem https://github.com/eclipse-cdt-cloud/vscode-memory-inspector

I do know how to write memory and do it in other extensions! It is all the other stuff I have to do. I am leaning towards the Instant method as well. Except, this is not a high priority for me. I will get to it eventually

Similar extensions seem to already support write mem https://github.com/eclipse-cdt-cloud/vscode-memory-inspector

Btw, did you actually try this extension?

I tried to try it, but he didn't seem to be compatible with cortex-debug, and then I gave up. I might try again later

I tried to try it, but he didn't seem to be compatible with cortex-debug, and then I gave up. I might try again later

I doubt it. We both follow the same debug protocol and I would have heard about it if there was a compatibility issue. I don't think they released it yet. Did you find it on the marketplace?
You may like that extension better anyways since editing is super high on your list. I don't know when I will get around to it.

They did not publish it, I just compiled it myself, but I found that it seems impossible to write, although it seems to be implemented in the code. I didn't try too much later, I thought there was some incompatibility in the protocol, maybe my guess was wrong

Nope, I did not see the write implemented in the code yet. That is why it is not published yet, more than likely. How can there be incompatibility? I know who these people are. They had been using the same protocol with the SVD-viewer and we use it with the rtos and memory views. You should ready their code carefully. I did not see any write implementation and it is not a big deal. It just a few lines of code. I am done explaining this to you. Writing is easy. All the other stuff around it like undo stack, user interface, etc.


Split Problem into Base, Fitting and Design

An initial PR to restructure Problem ahead of adding a design optimisation example.

Hi @NicolaCourtier, nice one! How do you feel about changing FittingProblem to FitProblem?

It's looking good @NicolaCourtier! I've left few comments above, can you update the CHANGELOG.md as well?

Thanks for the review @BradyPlanden! I've acted on your feedback so it would be great if you could take another look at the latest version.


"Could not load image" for any image in a zip file.

Example error:
 [ERROR ] Could not load image Pictures/Pics/Winter Holidays 2013.zip#/20131220_190919_696.jpg: cannot identify image file <_io.BytesIO object at 0x7f2157af4590>

Appears to occur on all images in zip.
(Also, I didn't know if you want issues here, or in the main sist2 issues. LMK and I will remove/repost)

Thanks, here is fine
Hi did you enable thumbnails? It should fallback to the generated thumbnails for files inside archives

I did not have thumbnails enabled. I am running it again with Thumbnails enabled on a smaller group of files to see how it goes.


Update tensor device on train and eval function

Reopen from #41 due to issue with GitHub processing.

Added .to(p.data.device) to ensure p.data can be lerp_ with state['z'].
Avoids error relating to different devices like RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
This ensures the optimizer is allocated to the matching torch.device to avoid device mismatch errors, especially when the optimizer is resumed for training or during evaluation-only mode.
Normally on first training, the device mismatch error wouldn't error due to the use of torch.clone in the step function at self.state[p]['z'] = torch.clone(p.data). However, if the step function isn't called like during continuation of training or evaluation-only mode, a device mismatch error could occur.

Hi @adefazio , I have applied the fix for eval and train functions in both sgd_schedulefree.py and adamw_schedulefree.py.
This ensures the optimizer is allocated to the matching torch.device to avoid device mismatch errors, especially when the optimizer is resumed for training or during evaluation-only mode.


Tree performance improvements: parallel view get and search count

Related https://github.com/gisce/webclient/issues/520


Google Cloud deployment option in quickstart.sh

Added a "-t google" option in quickstart.sh, some parameters specific to Google Cloud, and a "provision_google()" function to implement the Docker Machine call with the Google Cloud driver. The usage text is modified as well.
Google Cloud specific parameters are:
-i google-project ID: required The ID of your project to use when launching the instance. With gcloud, use "gcloud projects list" to list your ID's
-l google-disk-size: Disk size of the instance. Default: 10 GB.
You should get authorization by typing gcloud auth login
or setting GOOGLE_APPLICATION_CREDENTIALS environment variable before running script.

I tested this and raised a PR with some suggestions:
https://github.com/gokhankuyucak/adop-docker-compose/pull/1

Sorry @gokhankuyucak  I found it wasn't possible to re-run quickstart and also the certbot job for docker registry didn't work.  Hence I've made fixes on my fork.  Please can you tick the box on this PR so that I can edit it and I'll get it merged.  Thanks for this!

Sorry @kramos but
_

Please can you tick the box on this PR so that I can edit it and I'll get it merged.

_
I didn't get this part, what should I do? Thanks

https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/
Sent from my iPhone

On 25 Feb 2018, at 19:29, Gokhan Kuyucak<EMAIL_ADDRESS>wrote:
Sorry @kramos but
_
Please can you tick the box on this PR so that I can edit it and I'll get it merged.
_
I didn't get this part, what should I do? Thanks
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks for the link as I checked  "Allow edits from maintainers" checkbox is already ticked. Could you please try again?

Sorry for the very slow response!  It looks like you need to also explicitly grant me access to push to your fork please: https://help.github.com/articles/committing-changes-to-a-pull-request-branch-created-from-a-fork/
By the way, I just rebased from master to my branch for this PR and a stack created in GCP like a dream.  Well actually the only snag is having to manually open port 80...  any thoughts on that?

On port 80, there is a similar "issue" when doing it in AWS however often it's done in an account where the SG has already been manually edited.
One workaround could be to use the gcloud CLI to open the port although like in AWS it might be that the user deploying /C might not have permission to.

HI @nickgriffin, I did exactly that, if quickstart can find the gcloud CLI, it should succeed at opening  port 80.
To test this PR:
$ ./quickstart.sh  -t gcp -i <GOOGLE_PROJECT_ID> -m <CHOSEN MACHINE NAME:


Create Chetann.md

The Pull Request resolves Issue #[Issue-Number]
Description:
A brief description about the addition or edits made.
Notes: Delete all the text including this!

The #[Issue-Number] should be replaced with the specific Issue being referenced.

Sorry buddy, I don't think this is a valuable contribution to open source.


Add module to allow printing other types in HTML text

Right now you can only print strings to HTML. So you have to to_s Int32s for example.
Instead, let's do something like this:

Add a LuckyWeb::HtmlOutputtable (hoping to find a better name)
Change type restriction for HTML tags from String to String | LuckyWeb::HtmlOutputtable
Add LuckyWeb::HtmlOututtable to Int32 and Int64

Other types could also include the module to be allowed in HTML text, but I think that should be rarely done. Might be helpful for custom types like Money or EmailAddress though. That way you don't need to to_s it first

Maybe a good name for this is LuckyWeb::AllowedInTags

I am working on this and have some trouble understand Crystal / getting it to work like I understand it 😏

Alright @paulcsmith I am not really sure of my changes. I am still very new to crystal and do not know whether this is all "how it's done"™ .
Please let me know what you think.


Improvement add approx_count_distinct/ndv to FunctionAlias rule

Proposed changes
add approx_count_distinct/ndv to FunctionAlias rule
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


[HUDI-7623] Refactoring of RemoteHoodieTableFileSystemView and RequestHandler

Change Logs
Found a lot of code duplicates and inconsistent naming in RemoteHoodieTableFileSystemView and RequestHandler classes.

removed code duplicates;
fixed logging;
fixed naming of constants (request urls);
moved some methods to right places;
removed extra newlines

Impact
none
Risk level (write none, low medium or high below)
none
Documentation Update
none

The config description must be updated if new configs are added or the default value of the configs are changed
Any new feature or user-facing change requires updating the Hudi website. Please create a Jira ticket, attach the
ticket number here and follow the instruction to make
changes to the website.

Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

@hudi-bot run azure

@hudi-bot run azure


[Tabs][joy] Fix default design of the Tabs

closes #36782

[ ] I have followed (at least) the PR section of the contributing guide.

move the changes to #36843


Cannot connect after manual disconnect

First, I want to thank for brilliant plugin, it works as expected. I just have one issue. when app is loaded user is connected to socket.io server and everything works fine, but once user logs out from the app I manually disconnect the socket(so user doesn't get notifications and so on) and redirect user to login page. If user decides to login without refreshing the app, on login user is not connected to socket.io server. Everything works fine once app is closed and opened again. Any help or advised would be highly appreciated. Thanks

@bachras which version of nativescript-socket.io are you using?


Add maintainer: Ezibenroc

@Ezibenroc, if you're okay with it, I'll merge this PR, which will give you permission to administer this conda-forge feedstock repo for the pyroaring conda package.
If you ever publish a new version of pyroaring, the conda-forge bot will create a new PR to update the package, and you'll be able to approve/edit/merge those changes to publish a new package.

Sure, why not. I have no experience at all with conda though, so my help might be limited...


Outdated what can be maintained by co-maintainers

Summary
What can be merged by co-maintainers is still written as if 3.0 hadn't been released yet: https://github.com/wiremock/wiremock/blob/master/CONTRIBUTING.md#what-can-be-merged-by-co-maintainers
References
No response

Thanks for catching, submitted a patch


Memory error

Hi Graham,
I'm trying to run the find_intersecting_snps.py script but it reserves unto 50G of memory for one BAM. Is this normal? Also the --samples are those the samples in my bam file or samples in the 1000G file used to create the SNP files?

Hi Anne,
The --samples specify the identifiers of that samples that you are using in the haplotypes.h5 file. E.g. if you made a haplotypes file containing all of the 1000 genomes samples, but are only using 20 of these individuals in your study, you would provide a list of identifiers for the 20.
Each BAM file should only contain reads for a single individual (but polymorphic SNPs for all individuals in your study are considered when filtering reads).
It is not normal for the script to use 50GB of memory. How many samples are you using, and how large is your BAM file?

Hi Graham,
Thanks for getting back to me.
I think I might have misunderstood the pipeline. I assumed the haplotypes file was generated using a reference population and so I used the 1000 genomes, not my own samples.
Regards,
Anne
From: Graham McVicker <notifications<EMAIL_ADDRESS>Reply-To: bmvdgeijn/WASP <reply<EMAIL_ADDRESS>Date: Wednesday, 30 November 2016 at 18:55
To: bmvdgeijn/WASP <WASP<EMAIL_ADDRESS>Cc: anne <anne<EMAIL_ADDRESS>Author <author<EMAIL_ADDRESS>Subject: Re: [bmvdgeijn/WASP] Memory error (#57)
Hi Anne,
The --samples specify the identifiers of that samples that you are using in the haplotypes.h5 file. E.g. if you made a haplotypes file containing all of the 1000 genomes samples, but are only using 20 of these individuals in your study, you would provide a list of identifiers for the 20.
Each BAM file should only contain reads for a single individual (but polymorphic SNPs for all individuals in your study are considered when filtering reads).
It is not normal for the script to use 50GB of memory. How many samples are you using, and how large is your BAM file?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/bmvdgeijn/WASP/issues/57#issuecomment-263960985, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQplCVKWxHukeWGbAVFdwImbRy_dUeqYks5rDcaIgaJpZM4LAhd-.

Hi Graham,
Thanks for your help. The script works fine for me now.


proclaim.includes not working on special objects such as window

Reproducible test case -- https://jsbin.com/tevapoyucu/edit?html,js,console,output
I believe this occurs because the isPlainObject function returns false for objects such as window.
I'm not too sure how we should go about solving this issue. For the moment I am working around this by using proclaim.ok(Object.prototype.hasOwnProperty.call(window, 'document')).

Reckon we might just be able to change this line:
// Object#hasOwnProperty
- if (isPlainObject(haystack)) {
+ if (typeof haystack === 'object' && haystack !== null) {
    if (haystack.hasOwnProperty(needle)) {
        return true;
    }
}


Provide alternate to downwardAPI for podmetadata volume/data

Summary
Currently, the use of the downwardAPI to project the podmetadata volume blocks the use of argo workflows on nodes that don't have support for downwardAPI projections. This is currently the case for Azure's Virtual Nodes feature for AKS. I have worked through all the other issues (ie using the k8sapi executor to get around the docker-sock problem), but this one is currently blocking.
It's obvious why downwardAPI is being used (super convenient), but am wondering if it would be feasible to get this data propagated via some other mechanism when that api isn't available on a particular node/nodepool.
If feasible, would then expose this feature via config (e.g. disableDownwardAPI, assumed false if not present in order to be backward compatible)
EDIT: of equal import: virtual nodes in AKS also do not support initContainers. I know these limitations would ideally be solved at the AKS/virtual-kubelet level (and I've made a ticket over there as well), but am hoping argo could potentially be adapted faster than MSFT is likely to move on any of this. I can probably take a stab at a PR if someone with more knowledge than I have could propose a viable alternative.
The only thing I can think of is to have the init/wait/main containers make actual API calls to get the data needed, when needed. But not sure if that makes sense.
Use Cases
When deploying workflows to so-called "serverless" node solutions that don't support downwardAPI projections (i.e. AKS virtual nodes)

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

Some of the code related to podmeta can be found in executor.go:
func (we *WorkflowExecutor) monitorAnnotations(ctx context.Context) <-chan struct{} {

I believe this is used to see if the pod has been annotated with "execution control" and the main container must therefore be terminated.
This could be replaced by a pod get on the deadline timer.
Would you like to submit a PR?

@simster7 you know this code well - anything to add?

After a bit of an investigation - this is non-trivial. Each workflow pod running using the k8sapi executor creates a connection to the k8sapi to watch for changes to the pod. This means if a workflow has N pods, it has N connections. This solution does not scale and as a result, will not work for the pns, docker or kubelet executors.
We could move the responsibility of watching for annotation changes to the executor (not unreasonable), and they could then choose which method to use (k8sapi is already watching).
However, I do wonder if there is a much simpler solution. If the downward API is not available, then we just log the error and do not monitor the execution control annotation.

We could move the responsibility of watching for annotation changes to the executor (not unreasonable), and they could then choose which method to use (k8sapi is already watching).

coming in with low context, this does seem like potentially the optimal solution. e.g. with k8sapi set as the executor, and watching, the podmetadata volume is just moot?

However, I do wonder if there is a much simpler solution. If the downward API is not available, then we just log the error and do not monitor the execution control annotation.

I am slightly confused by this, in that I don't understand the relationship to the monitoring of the execution control annotation, and the workflow actually working. I thought the annotations were somehow critical to the correct execution of the flow. Also, the error received is a low level k8s error about not being able to schedule work to any matching nodes because of the unsupported volume type, so we just somehow have to not attempt mounting that volume... unless I misunderstood what you meant by "just log the error"

The annotations are used for terminating the pod - i.e. argo stop. If you can go without that capability - there is a simpler solution.

ah ok, I understand. I do occasionally manually re-submit a flow, and then potentially delete the flow (from the UI), but those cases are typically when I'm debugging flows / configs.
We can honestly live without those functions for the stable production flows, if it means we can run on instantly scalable infra

We've just spoken about the lack of init containers. We must have a way to delay the start of the main container, and this is init containers.
Can you please link to the Azure issue?

The azure docs on virtual nodes (quick linked to limitations section): https://docs.microsoft.com/en-us/azure/aks/virtual-nodes#known-limitations
issue in azure-cli project I just created today to ask about potential support for downwardAPI volumes: https://github.com/virtual-kubelet/azure-aci/issues/91 (no movement yet)
And ah... I was not thinking about the init container. Interestingly, isn't actually the wait container that delays the main? In my flows I only actually see a couple workflow pods that have an init container show up, and that seems to only be there in script based task definitions that have outputs (not sure if/how that's related but is true for our flows). The wait container isn't an initContainer,  and the vast majority of our task pods come up with only wait and main containers.
Either way, yeah I don't know what to do about the actual init container then.

For our needs, I can re-implement those script tasks as container/command tasks and completely get rid of any task pods that create the init container (the rest of the pods are container/command tasks).

So, I know we don't have a conceptual, generic solution for the init container beyond my willingness to re-implement our flows to avoid it completely, but as for the other main blocker, you mentioned there being a possible simpler solution (eg. having the optionality to not monitor the annotations).
I'm still slightly confused just because when I looks at the annotations in the cluster, they are extensive and include input params and whatnot. I'm not following how all that data being added to the annotations is just to terminate pods prematurely, but I'll obviously take your word for it :)
But at any rate, how "simple" is it actually to do that? I don't have a go dev setup currently, and am a little rusty, but am motivated to try to find a path for get our flows going on virtual nodes.

Fixed.


chore(*) bump version to 0.3.0

Summary

Remove BasePlugin dependency

is this for 1.2.x release? so should go ahead of #12 and #13 ?

@Tieske Thanks for bringing that up. Could you rebase those? I'll review them

Closing in favor of #15 and a separate PR for preparing a new release.


Audio Issue: Chromebook 3100, pre 2021.

So I've successfully got ubuntu 20.04 integrated into my Dell Chromebook 3100, and followed the setup procedures, yet nothing, oddly during the first part, I noticed several "Mount Point not found" errors, atleast before the sof-setup-audio, what do I do?

Can you write this in terminal  bash -x /usr/local/bin/setup-audio-skl  2>&1 | tee output.txt
Then upload the output.txt

Closing because no answer from author.


python312Packages.cyclopts: init at 2.6.2

Description of changes
Module to create CLIs based on Python type hints
https://github.com/BrianPugh/cyclopts

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

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

Result of nixpkgs-review pr 317574 run on x86_64-linux 1

4 packages built:

python311Packages.cyclopts
python311Packages.cyclopts.dist
python312Packages.cyclopts
python312Packages.cyclopts.dist


Fixes for alerts

Proposal to fix v4 -> v5.

[x] Docs > Components > Alerts Sizes: remove margin when stacked? (no design specs).

divide by 2 the margin, could maybe be reduced more ?

[x] Docs > Components > Alerts Missing specific Boosted message about the icons from v4.

Added the same as v4 one.

[x] Docs > Components > Alerts Missing specific Boosted message about the div in "Additional content"

Added the same as v4 one.

@louismaximepiton normal that it's been closed?


[Bug] - Add-DbaAgDatabase's new use of  Test-DbaAvailabilityGroup is too aggressive

Verified issue does not already exist?
Yes
What error did you receive?
Availability Group AG_MyDatabase not found on replica [server_b].
Steps to Reproduce
New-DbaAvailabilityGroup -Primary server_a -Secondary server_b -Name AG_MyDatabase -Database MyDatabase -SeedingMode Automatic -FailoverMode Automatic -ClusterType Wsfc -Confirm:$false -Verbose -EnableException

Are you running the latest release?
Yes
Other details or mentions
Module Version: 1.0.173

It looks like the issue is when Test-DbaAvailabilityGroup is called by Add-DbaAgDatabase via New-DbaAvailabilityGroup to verify the state. The secondary replica in my case is joining the AG properly (every time after it has errored I checked immediately and it was joined), but I think this is checking if the secondary replica is joined slightly too fast and thus unnecessarily erroring out:
https://github.com/sqlcollaborative/dbatools/blob/c3d927ea7e7013f13ad6014ccaf29a4b7b8376d2/functions/Test-DbaAvailabilityGroup.ps1#L218-L229
The same command/params/database/instances were all working correctly on version 1.0.136.
I think it may need an artificial wait like the others from the same PR?
What PowerShell host was used when producing this error
PowerShell Core (pwsh.exe)
PowerShell Host Version
Name                           Value

PSVersion                      7.2.0-preview.6
PSEdition                      Core
GitCommitId                    7.2.0-preview.6
OS                             Microsoft Windows 10.0.19042
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0
SQL Server Edition and Build number
Microsoft SQL Server 2019 (RTM-CU8-GDR) (KB4583459) - 15.0.4083.2 (X64)
2019 Microsoft Corporation  Enterprise Edition: Core-based Licensing (64-bit)

Hi @LowlyDBA , thanks for reporting this. Will take care of it. Do you have a workaround? Like first building the AG without databases and than run Add-DbaAgDatabase after some seconds?

Best fix would be to change Add-DbaAgReplica to wait for a successful join before returning.

It seems not a matter of time but of missing SMO refresh. Because the SMO generated by New-DbaAvailabilityGroup is reused with Add-DbaAgDatabase and thus Test-DbaAvailabilityGroup - an up to date status of the SMO is important.

That makes sense! Thanks for diagnosing. I was checked out after spending
all day thinking it was something on my infrastructure's end 😅
On Sat, Jul 17, 2021, 9:46 AM Andreas Jordan @.***>
wrote:

It seems not a matter of time but of missing SMO refresh. Because the SMO
generated by New-DbaAvailabilityGroup is reused with Add-DbaAgDatabase and
thus Test-DbaAvailabilityGroup - an up to date status of the SMO is
important.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sqlcollaborative/dbatools/issues/7574#issuecomment-881901907,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEAQCIML6DU7U6I2PLS6IW3TYGCTFANCNFSM5AQJGY2A
.


remove VERSION file as it conflicts with c++ includes

closes https://github.com/imgui-rs/imgui-rs/issues/483

Hm, sure. can you rename it to VERSION.txt instead though? I think some people may want it in conjunction with the flags where we export the location of includes and such.
(Also, I'm aware the lint failures aren't your fault. I need to get to them, but probably wont this week)

Sure, I just tested it and it fixes the problem as well (in my case) 🥳

IDK when I'll get the next release out, but until then you can hopefully cope with a git dep?

IDK when I'll get the next release out, but until then you can hopefully cope with a git dep?

sure, no worry, thanks for your work 👍


Introduce blok API

StoryblokPage can now be imported from the package instead of created
Simple API to add more bloks (add('hero', () => import('./Hero.vue')))
A few base bloks included (Page, Grid, Tile)

Let's not update the submodule in this PR, or is it needed for the changes to work?

I don't think so. I'll change the PR soon!


support type casting

See jekyll/jekyll#3206 for more info.

I tried setting blog post front matter thusly:
views:        !!str "2,447"

However when displayed with {{ page.views }} it appears as 2447 and the comma is lost.
The band-aid solution is to insert a UTF-8 thin space (U+2005) also known as a 1/4 em space before the closing double quote.

I tried setting blog post front matter thusly:
views:        !!str "2,447"

However when displayed with {{ page.views }} it appears as 2447 and the comma is lost.
The band-aid solution is to insert a UTF-8 thin space (U+2005) also known as a 1/4 em space before the closing double quote.


Initial split mode [and related ABI change]

Codecov Report
Patch coverage: 87.50% and project coverage change: +0.05 :tada:

Comparison is base (8f12478) 76.47% compared to head (e8e3ac0) 76.53%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #664      +/-   ##
==========================================
+ Coverage   76.47%   76.53%   +0.05%
==========================================
  Files          18       18
  Lines        6930     6938       +8
==========================================
+ Hits         5300     5310      +10
+ Misses       1630     1628       -2

Impacted Files
Coverage Δ

src/Enzyme.jl
84.01% <80.95%> (-0.10%)
:arrow_down:

src/compiler.jl
77.35% <94.73%> (+0.06%)
:arrow_up:

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 in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


wait_for fails when matcher does not implement supports_block_expectations?

If you try to wait_for { something }.to matcher and matcher does not implement supports_block_expectations? it fails with undefined method.  I am running into this with Capybara, their matchers do not implement supports_block_expectations?.
From the documentation of RSpec::Matchers::MatcherProtocol#supports_block_expectations? it looks like rspec assumes false if it is not implemented.  Perhaps you should do the same?
https://rubydoc.info/github/rspec/rspec-expectations/RSpec%2FMatchers%2FMatcherProtocol:supports_block_expectations%3F
Line 17 of handler.rb should probably be if matcher.try(:supports_block_expectations?) ?

I have the same issue. My code wait_for { page }.to have_content("Hello") is broken.
Error:
NoMethodError:
  undefined method `supports_block_expectations?' for an instance of Capybara::RSpecMatchers::Matchers::HaveText

@iammer Thank you for the report! 💛 Are you using v1.0.0?

I just pushed a couple of tests exercising the bug and the fix to main. I'll release version 1.0.1 shortly! Thank you again for the report, and I'm sorry for my slow reply!

Version 1.0.1 released!


Enum value in where clause in Query annotation [DATAJDBC-409]

Fábio Coutinho Valente opened DATAJDBC-409 and commented
I'm trying to create a query in my repository to find entities by a few properties and one of these properties is an enum.
Since Spring Data JDBC doesn't support derived queries yet, I'm creating a method with Query annotation in my entity repository.
In prodution we use PostgreSQL but ind development we use H2.
My method with query annotation is someting like:
@Query("SELECT t.* FROM ENTITY t WHERE t.date1= :date1 AND t.date2= :date2 AND t.entity_type = :entityType")
List<MyEntity> findByDate1AndDate2AndEntityType(@Param("date1") LocalDate date1, @Param("date2") LocalDate date2, @Param("entityType") EntityType entityType)

When I call this method I get an exception like

Caused by: org.h2.jdbc.JdbcSQLDataException: Hexadecimal string contains non-hex character: "FI"; SQL statement:

The FI is my enum value used in the search.
If I change my repository method to use String instead of EntityType enum and call it with the enum name it works fine and I receive a list of MyEntity with the property entityType with the right value.
Due to coherence I would like to keep using EntityType. Changing this method to use String would allow it to be called with any value that are not valid enum values which results in an empty list.
When derived queries support is released the idea is to remove this Query annotation

Issue Links:

DATAJDBC-412 Custom value type can't be used as Id

This indeed appears to be fixed by DATAJDBC-464.
A new test on main to reproduce this issue already passes. The same test applied before the commits to resolve DATAJDBC-464 fails with the exception org.h2.jdbc.JdbcSQLDataException: Hexadecimal string with odd number of characters: "FIRST"; and passes when applied after these commits.


Contribute link is broken on homepage

Search first

[X] I searched and no similar issues were found

Description
I wanted to start fixing a bug, so followed the link in the README leading me to the homepage, which ultimately lead me to https://www.liquibase.org/community/contribute/code. This is unfortunately a 404, so obviously a bug.
Steps To Reproduce

Go to https://www.liquibase.org/community-contributors/community-developers
Click the button "Contribute code"
Observe that you are on https://www.liquibase.org/community/contribute/code and that the text reads "Oops! You broke it :(
Error 404"

Expected/Desired Behavior
Some page with content describing how to contribute
Liquibase Version
No response
Database Vendor & Version
No response
Liquibase Integration
No response
Liquibase Extensions
No response
OS and/or Infrastructure Type/Provider
No response
Additional Context
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR (Thank you!)

Thank you for opening this ticket. The team is in the process of redirecting the links to the new website site.
In the meantime, here is the new Liquibase Contributor website for instructions on participation. And, here is the link on how to Contribute Code to Liquibase.


Installed APP on store and redirecting on page getting the AUTH issue

For bug reporting only! If you're posting a feature request or discussion, please ignore.
Expected Behavior
Click on any page after app installed it will not show the login page again.
Current Behavior
APP is successfully installed the first time it is showing the user id. if we have refresh/redirect to any other page AUTH user id is not showing and redirect to the Shopify login page. let me share the screenshots:
Step1: http://prntscr.com/vmueum
Step2: http://prntscr.com/vmuhn7
Step3: http://prntscr.com/vmuieh
Please check and let me know the solutions for this.
Thanks

Can you share with as your routes ?

@masix please check the router file code.
`<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------

Web Routes

Here is where you can register web routes for your application. These

routes are loaded by the RouteServiceProvider within a group which

contains the "web" middleware group. Now create something great!

*/

Route::get('/', function () {
return view('app.home');
})->middleware(['auth.shopify'])->name('home');
Route::get('changeSettings', 'UserController@changeSettings')->name('changeSettings');
Route::get('manageCredentials', function () {
return view('app.manage-credentials');
})->name('manageCredentials');
Route::get('thank-you', function () {
return view('app.thank-you');
})->name('thank-you');
Route::get('cancelled', function () {
return view('app.cancelled');
})->name('cancelled');
Route::get('failed', function () {
return view('app.failed');
})->name('failed');
Route::post('manageCredentials', 'UserController@manageCredentials')->name('manageCredentials');
Route::get('orderHistory', 'UserController@orderHistory')->name('orderHistory');
Route::post('paymentSuccess', 'DashboardController@paymentSuccess')->name('paymentSuccess');
Route::get('getOrderDetails', 'DashboardController@getOrderDetails')->name('getOrderDetails');
Route::get('getOrders', 'DashboardController@getOrders')->name("getOrders");
Route::get('paygopay', 'DashboardController@paygopay')->name("paygopay");
Route::get('testmail', 'MailtestController@testmail')->name('testmail');
`
Please check and let me know if you need anything else.
Thanks

local.ERROR: Unknown error {"userId":11,"exception":"[object] (Osiset\ShopifyApp\Exceptions\ApiException(code: 0): Unknown error at /var/www/shopify-tracking-app/backend/vendor/osiset/laravel-shopify/src/ShopifyApp/Services/ApiHelper.php:434)
[stacktrace]
#0 /var/www/shopify-tracking-app/backend/vendor/osiset/laravel-shopify/src/ShopifyApp/Services/ApiHelper.php(354): Osiset\ShopifyApp\Services\ApiHelper->doRequest(Object(Osiset\ShopifyApp\Objects\Enums\ApiMethod), '/admin/webhooks...', Array)
#1 /var/www/shopify-tracking-app/backend/vendor/osiset/laravel-shopify/src/ShopifyApp/Actions/CreateWebhooks.php(80): Osiset\ShopifyApp\Services\ApiHelper->createWebhook(Array)
#2 [internal function]: Osiset\ShopifyApp\Actions\CreateWebhooks->__invoke(Object(Osiset\ShopifyApp\Objects\Values\ShopId), Array)
#3 /var/www/shopify-tracking-app/backend/vendor/osiset/laravel-shopify/src/ShopifyApp/Messaging/Jobs/WebhookInstaller.php(68): call_user_func(Object(Osiset\ShopifyApp\Actions\CreateWebhooks), Object(Osiset\ShopifyApp\Objects\Values\ShopId), Array)
#4 /var/www/shopify-tracking-app/backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Osiset\ShopifyApp\Messaging\Jobs\WebhookInstaller->handle()
#5 /var/www/shopify-tracking-app/backend/vendor/laravel/framework/src/Illuminate/Container/Util.php(37): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#6 /var/www/shopify-tracking-app/backend/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
Q:How to solve this problem？

#522


[test] Use the just-built Clang when using new driver

Make sure we execute the just-built Clang for linking jobs in the new driver. This ensures we link against the correct compiler-rt libraries.
rdar://132122596

@swift-ci please test


Signal filtering

It may be nice to have a few simple methods available for basic filtering or resampling of signals.
Maybe a class for storing signal values paired with a sample rate and offset, and added support for signal plots to display their contents.
Maybe these could be extension methods on signal sources?
E.g., here's a crude fast implementation of a rectangular moving window average. It would be nice to also have options to adjust for the lagging phase shift caused by this method.
int pointCount;
double[] smooth = new double[Values.Length];

double runningSum = 0;

for (int i = 0; i < smooth.Length; i++)
{
    runningSum += Values[i];

    if (i >= pointCount)
    {
        runningSum -= Values[i - pointCount];
        smooth[i] = runningSum / pointCount;
    }
    else
    {
        smooth[i] = runningSum / (i + 1);
    }
}

I'm working on a blog post about this topic, so I'll close this issue and hope a nice article appears on www.SWHarden.com soon 🤞


Moment no longer exporting global when require.js is present

As of version 2.10.0, the moment global is no longer available if a module system is detected.  This was previously working in 2.9.0.  This is causing a headache for us as we have newer code written with Polymer that is HTML Importing moment, and we're integrating it with older code written with require.js.  Moment detects require.js and doesn't add the global, which causes our elements to fail at runtime.  Our tests and demo pages still work because they do not have require.js present, and the Polymer elements themselves don't need require.js to function.
Fiddle is below, but please note that it appears to be freezing for a short period before dumping out to the console.  You'll ultimately get "moment is not defined" error and a "Mismatched anonymous define() module" error from require.js.
Fiddle: https://jsfiddle.net/f5xu1cho/1/

Marking as bug, but I think it may have been intentional.  Need to explorer further.

This was definitely on purpose. Here's where we deprecated require-but-also-globals https://github.com/moment/moment/pull/1220/files. This is one of those damned-if-we-do-damned-if-we-don't things. Some things break in requirejs environments if we do export it (which is why we provided a noGlobal in that patch), and mixed environments break if we don't.

Since this was intentional, I'm marking it as "troubleshooting" instead of "bug".  Perhaps someone can offer a workaround.

The require team kindly explained what to do in this situation with requirejs/requirejs#1554 so I'm closing this.


Automated cherry pick of #6242: disks: reword error message on bad DiskConfig struct

Cherry pick of #6242 on release/3.0.
#6242: disks: reword error message on bad DiskConfig struct

Codecov Report

Merging #6245 into release/3.0 will increase coverage by 0.06%.
The diff coverage is 20.89%.

@@              Coverage Diff               @@
##           release/3.0   #6245      +/-   ##
==============================================
+ Coverage         6.85%   6.91%   +0.06%
==============================================
  Files              540     541       +1
  Lines            91509   91641     +132
==============================================
+ Hits              6270    6340      +70
- Misses           84719   84780      +61
- Partials           520     521       +1

Flag
Coverage Δ

#aFlag
6.91% <20.89%> (+0.06%)
:arrow_up:

Impacted Files
Coverage Δ

pkg/baremetal/manager.go
0.50% <0.00%> (-0.01%)
:arrow_down:

pkg/baremetal/tasks/base.go
13.59% <0.00%> (-0.41%)
:arrow_down:

pkg/cloudcommon/db/db_dispatcher.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/modelbase.go
1.44% <ø> (+0.02%)
:arrow_up:

pkg/cloudcommon/policy/policy.go
1.58% <0.00%> (+0.04%)
:arrow_up:

pkg/cloudprovider/cloudprovider.go
1.57% <ø> (ø)

pkg/compute/baremetal/diskconfig.go
60.14% <0.00%> (ø)

pkg/compute/models/cloudregions.go
1.88% <0.00%> (-0.01%)
:arrow_down:

pkg/compute/models/dbinstance_accounts.go
2.34% <0.00%> (ø)

pkg/compute/models/dbinstance_databases.go
4.24% <0.00%> (ø)

... and 26 more

Continue to review full report at Codecov.

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


Item rune sockets

Add support for item's rune sockets, basically using the empty sockets filter in the weapon section.

[x] #177
[ ] #178

Realizing this is quite a bit more complicated so added a milestone

I just updated to 0.1.5 and searching for sceptres/wands/staff doesn't work properly now due to the empty rune socket filter. The search filters for a min search of 1 socket and when you uncheck the option it searches for 0 min sockets which breaks the search. The trade site needs the field to be blank to work for these weapons.

oh those just don't have sockets. interesting. hotfix incoming yay

imagine playing magic lol :)

Thanks! Also just noticed that focuses can have a socket but it isn't supported.

yeah i saw that after I had started the release build, not breaking stuff so i'll just pick it up tomorrow

yeah no worries. you work quick. Thanks again!


Add all contributors

Add all contributors to the repo

@all-contributors please add @andrewthetechie for idea, tests and code


navbar-expand appears inconsistently

Prerequisites
Please answer the following questions for yourself before submitting an issue.

[x] I am running the latest version
[x] I checked the documentation and found no answer
[x] I checked to make sure that this issue has not already been filed
[x] I'm reporting the issue to the correct repository (for multi-repository projects)

Expected Behavior
Navbar's navbar-expand-* breakpoint should be respected
Current Behavior
The navbar always toggles on the lg breakpoint, so if a different breakpoint is set by using eg. navbar-expand-sm (instead of the default navbar-expand-lg), the navbar still collapses on the lg breakpoint, leaving it unusable between the desired breakpoint and the lg breakpoint.  When reaching the desired breakpoint, all looks good again
Failure Information (for bugs)
This seems to be an existing bug and was already fixed in the pro version 2.0.3, just a I found out in this issue: https://github.com/creativetimofficial/ct-material-kit-pro/issues/75
Since the pro version is an empty repo, I cannot apply the fix myself
Steps to Reproduce

Copy the sample code from the navbar section
Adjust the navbar-expand-lg class to any other breakpoint, eg. -sm, -md, -xs
Resize the browser window untill you cross the -lg breakpoint
The navbar is now unusable between the lg breakpoint and the chosen breakpoint
When resizing futher and reaching the desired breakpoint, all looks good again

Context

Device:  HP Probook G3
Operating System: ElementaryOS - Ubuntu 16.04 LTS
Browser and Version: Chromium Version 66.0.3359.181 (Official Build) Built on Ubuntu , running on elementary 0.4.1 (64-bit)

Failure Logs
I can provide screenshots if needed, but this issue is so obvious and so easy to reproduce, please ask if needed

Hi,
after some digging around, I found that the offending media rule seems to be in material-design.css:12345, where regardless of the container's navbar-expand-* class, the navbar is being hidden by the @media all and (max-width: 991px) { statement on line 12329
I tried adjusting this, but this seems a bit out of my leage as there is a lot going on in that section..
When comparing to the regular boostrap media queries, they seem to be using @media min-width: xxx for each expanding class instead of the max-width.
Hope this is a quick fix for you guys as this has apparently already been resolved in the Pro version..
Kind regards,
Erik


[WIP] Draft for Tim Design team

@tgeorgeux

Really basic; but your team should be able to play with this.
bundle exec jekyll serve to play with it locally; and edit the content/css to get closer to waht is on figma.


Improvement: Product add/edit SonarQube configuration  visibility

Little improvement for adding and editing product, to not show SonarQube setting by default.
Collapsed:

Thanks, but I think we need to think about this a bit more. If we decide sections should be collapsable, I think we should to so for all sections, so also JIRA and Gitlab.
The blue panels are typically used in defect dojo on the "view product/test/finding"  pages. The edit modes are all black(grey) and white. We also use a glyphicon there to open/close the collapsed panel.

I think instead of the collapsable field here it should disappear completely without the existence of a "SonarQube" Tool Type. A user has to explicitly add that tool type anyways so that's sorta like enabling the sonarqube integration. That way it will be consistent with the Jira and Github integrations since they are not present unless enabled.

Agreed with @Maffooch, let's not show it if there is no need - and also with @valentijnscholten to keep it consistent.

@valentijnscholten @madchap @ptrovatelli That sounds good as well, the problem I'm idiot when it comes to frontend dev (CSS and HTML). So I'm not sure that I can do it.


feature-wip BE not start Arrow Flight Service by default

Proposed changes
arrow_flight_port default -1, do not start arrow flight server.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


Document version scheme to avoid breaking users' applications

https://pagure.io/freeipa/issue/7082
https://github.com/etingof/pyasn1/issues/51
https://github.com/etingof/pyasn1/issues/52
https://github.com/etingof/pyasn1/issues/54

Thank you for raising this issue!
Just a quick note that I think we can rectify the first issue by adding backward-compatible interface to the Sequence type in the upcoming 0.3.2.

JFYI: https://github.com/etingof/pyasn1/pull/60 fixes the FreeIPA issue.

@etingof thanks for PR #60

In semantic versioning, vX.y.z, y is a 'major' version in a sense where X is 0 - in the sense that breaking changes can be expected between v0.2.x and v0.3.x just as you would between v1.x.y and v2.x.y.


Ask ipfs.config for gateway address where possible

Hi @lidel 👋
This PR aims to make a small improvement to the out-o-the-box experience, by asking the ipfs api what it's config and using that where the user hasn't provided a non default override. This PR is deliberately the smallest change that could work, as I'm new here, and wanted to get your thoughts on it.
I'm working on integrating ipfs into brave, building on top of the work that @diasdavid has done.  I'd like to get ipfs-companion working in brave, but the first issue I hit was I had to run my local ipfs gateway on a port other than 8080 as the brave dev process uses 8080, so I figured I could learn a thing by getting ipfs-companion to find the gateway port from the api.

One thing that was tricky with the current set up was I couldn't see a way to know if the user had explicitly set an option, or if it had be added in by storeMissingOptions. What's the intention behind that step? Would it be reasonable to only store options the user has set explicitly?

Hello @olizilla! Getting Gateway address from API is indeed a neat idea! 👌
This PR is a very good PoC, thank you!
I've come up with some UX edge cases that need to be addressed before we merge it:
(my apologies if I sound a bit chaotic, its 1am here 💤 )

There is no way to tell what was user's intention by looking at the value of customGatewayUrl alone. It is possible that user is ok with a default value and do not want to change it to one returned from API.  This means we need to have a new checkbox that toggles this feature on the Preferences screen (relevant codepaths: src/options/options.html + initStates + onStorageChange), so that users can opt-out from this feature:

If the feature is enabled, we should make "Custom Local Gateway" read-only (as it will be set to a value fetched from API )
If the feature is disabled, "Custom Local Gateway" should be editable by user (current behavior)
Not sure how to name this new option -- any ideas? 🤔
If we want to be extra thorough, we probably should update the value of customGatewayUrl every time API changes state from offline to online and when user changes URL of API itself

<EMAIL_ADDRESS>is 100KB in size -- I feel we could  avoid including it by writing code and host extraction manually. In general we want to avoid external dependencies  (https://github.com/ipfs/ipfs-companion/issues/306).

If you have time, feel free to work on it here 👍
If not, I can pick it up after more pressing issues are resolved and my bandwidth frees up.

Would it be reasonable to only store options the user has set explicitly?

It sounds good on paper, but my experience is that you quickly run into layers of checks and orchestration that increases complexity and degrades performance.
I feel some background is due here:
Our extension is inspecting every request made by the browser in a blocking manner, so performance is our top priority.  I strongly believe we need to respect users and do our best to minimize impact on browsing experience, including memory and battery use. This often means we can't take "the easy route" that other extensions take.
To avoid reading various options multiple times on every request, background script maintains a local state object with normalized URLs and other heavily used flags.
Functions initStates and onStorageChange are responsible for keeping browser.storage.local and state in sync. It is not 1:1, as we do some pre-processing of things like URL object (do it once here instead on every request).
The storeMissingOptions simplifies a lot of things by ensuring browser.storage.local always has all the required  keys.  New/missing keys are loaded from src/lib/option-defaults.js and saved to browser.storage.local during startup.  It guarantees everything is in sync and there are no missing values. One less thing to worry about.
You may think that is a problem, as we are unable to tell if an option "was missing, so we used the default" or "was manually set by the user to a value that just happens to be the default". In reality if you need to differentiate between the two you run into a risk of false-positives, which is a sign of a deeper UX problem.  In case of customGatewayUrl we should just assume user wants the value fetched from API (with an option to opt-out). No need for comparing current value with default one.
I hope I did not make things worse with this elaboration, wanted to be thorough 🙂
I am aware some code patterns were ported from legacy add-on and may not feel "idiomatic" in webextension, but keep in mind when we started rewrite there were no webextensions around.
Let me know if something is unclear or could be simplified.

@lidel this is really helpful, thank you for taking the time to write it up. I'll pin down the use-cases and figure out a plan.

Our extension is inspecting every request made by the browser in a blocking manner, so performance is our top priority.

👍 💯 ✨  strongly agree! I really like that this add-on is focused it is on giving a good user-experience for ipfs.

am aware some code patterns were ported from legacy add-on and may not feel "idiomatic" in webextension, but keep in mind when we started rewrite there were no webextensions around.

Don't worry, I totally know that feeling. It's all good! I've jumped in here because I think this add-on is doing a great job and the brave integration is best achieved by helping out with ipfs-companion rather than making another bespoke thing!

This feature will be delivered as a part of https://github.com/ipfs-shipyard/ipfs-companion/issues/491#issuecomment-423653114 so I am closing this PR in favor of addressing it there.


Add Websocket API URL under settings

The wallet should not hard-code the API url, especially because it may be provided by a separate domain.

I suggest this as well:
echo 'module.exports = { wss_url="wss://xxxxx/web_socket" } > rpc_api/config.js
We know our business partners are going to fork and change this.  They can change this in their fork and it will remain anytime they want to merge.

When a web-socket changes I believe the only safe practical thing to do is to reset the chain-store’s cache and close the current wallet.  For an operation like that I would like to see a "Save" or "Change" button press to confirm the new web socket URL.
I can help, but I believe I should probably add a WIF view/export feature first.  What do you think?

I think the easiest way to handle this is to refresh the page, what do you think - should I add a button for this?

If you will call reset on the chain store and close wallet we will not put stress on mobile phones or slow bandwidth connections.  If you have any hiccups at all I can fix it very easy so don't spend any of your time on that.

Also, a basic test is very important.  Change to a web-socket that does not exist and make sure one can get back to that screen to change it back (to correct it).

Also, a basic test is very important.  Change to a web-socket that does not exist and make sure one can get back to that screen to change it back (to correct it).
Wrong ws connection will get user to InitError page where user can change the connection

Yep, think we can close this now no?

What would be nice to have is checking entered connection - if we can connect to it we can show it in green and add button to switch to this connection, we can either refresh the page or reset cache.
But let's address this later, I'll create a separate issue for this.


Enchance specs style

Our specs had grown "organically", and many of them use outdated style of testing things (all bootstrap & several checks is made inside single example, tons of hard-to-read large objects created on the fly, instance variables are used instead of let and so on).
What should be done in this ticket is:

Refactoring of specs in accordance with BetterSpecs guidelines;
Making specs more clean/DRY (only several different dataframes are created as a test subjects, covering most of the situations)
Probably, splitting large specs files into smaller ones (e.g. for dataframe -- basic functionality, math, output, import/export...)
Consider turning on Rubocop for specs files (with probably some cops turned off or tuned in spec/.rubocop.yml)
Consider introducing rubocop-rspec for rspec-specific checks (initially turned off, then turned on file-by-file & cop-by-cop)

As the full solution for the ticket will touch all spec/**/*.rb files, it is advised to make several PRs (one PR per one spec file, or one PR per one problem solution).
You can rely on my (@zverok) advices and reviews while working on this ticket.

I am interested in tackling this. I will be working on it this week. Is one PR per spec file ok?

I think that since this a fairly large task. More than one person can contribute at any given time. I will list the files that I am working on as I begin to work on them and others should do the same.

Yes, please list your progress & PRs just in this issue.

| File  | Status | PR |
| ------------- | ------------- | ------------- |
| spec/io/sql_data_source_spec.rb  | In Progress  |  |

@dshvimer any update on this? Are you going to work on io_spec?


Window Titles Track Info

Fixes #387
Setting must be configured in the settings file, new property enableWindowTitleInfo.

whoops, missed the main file...

This commit message is something I don't want to see in a PR, please squash your commits and force push

Squashed it down to one commit, tried getting rid of the rebase commit but it wasn't happening. If that doesn't work feel free to clone this and commit it yourself however it's got to happen and I'll just delete my branch.

Have you tried running
git rebase -i origin/master
You should then be able to mark all commits as "fixup"

I was trying to use the HEAD syntax on a soft reset, but I just wasn't going back far enough apparently, committing now

That didn't fix it either, even though my git log didn't show the rebase commit anymore.
git rebase -i origin/master was of no help, probably would have been had I done it correctly in the first place.

Alright, commits squashed, does this all look good now?

Looks legit