GitHub labels for Paralus repos

What does this PR change?

Document GitHub labels for Paralus repos.

Does the PR depend on any other PRs or Issues? If yes, please list them.
None
Checklist
I confirm, that I have...

[ ] Read and followed the contributing guide in CONTRIBUTING.md
[ ] Added tests for this PR
[ ] Formatted the code using go fmt (if applicable)
[ ] Updated documentation on the Paralus docs site (if applicable)
[ ] Updated CHANGELOG.md

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 36.34%. Comparing base (9f8ce0c) to head (8461392).
Report is 28 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #337      +/-   ##
==========================================
+ Coverage   34.41%   36.34%   +1.93%
==========================================
  Files          74       73       -1
  Lines       11783     9685    -2098
==========================================
- Hits         4055     3520     -535
+ Misses       7175     5611    -1564
- Partials      553      554       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Error: "no implicit conversion of String into  Integer (TypeError)"

Not sure if this a usage issue on my end. But after following the README and trying to view the inbox I see the following:
~/6/i/w/bin (master) $ ./wlist inbox
/…/wlist.rb:122:in `[]': no implicit conversion of String into  Integer (TypeError)
    from /…/wlist/lib/wlist.rb:122:in `block in get_inbox_id'
    from /…/wlist/lib/wlist.rb:122:in `each'
    from /…/wlist/lib/wlist.rb:122:in `detect'
    from /…/wlist/lib/wlist.rb:122:in `get_inbox_id'
    from /…/wlist/libexec/wlist-inbox:5:in `<main>'

BTW this is a great project! Very helpful to get into things. Thanks.

You're using the wrong version of ruby. Used ruby 2.2 and everything worked like a charm!
Specifically I changed line 39:
exec "$command_path" "$@"

to
ruby-2.2 $command_path "$@"

Of course, ruby-2.2 I got from my distros community repo. It's ruby 2.2.7 from https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.7.tar.gz. There are also .zip and .tar.xz that you can get to if you go to: https://cache.ruby-lang.org/pub/ruby/2.2/.
Goodluck!
I really hope this project get's picked up again!

Actually that's a temp solution. You really want to RVM, otherwise you won't be able to run the bash commands.


Adding gZip compression plugin

I am following this tutorial on adding a gZip compression to webpack: http://forum.vuejs.org/topic/4059/adding-gzip-to-webpack-using-compression-plugin
Wanted to check if I am doing this correctly by only adding it to the webpack.config.prod.js or should I also add it to others?

that sounds right to me, I was actually about to look into this, after checkout out my google speed test. uncompressed images are killing my score.

@caranicas same situation, I'll let you know how it goes for me, probably will try it out over the weekend.

@IljaDaderko add your project to the new 'docs/app.md' file. We are compiling a list of projects that use the boilerplate, and right now I'm the only one on the list.

@caranicas if you are wanting to minify images you are probably better off automating image optimization. Can try something like https://github.com/tcoopman/image-webpack-loader (I haven't tested, but assume it's a webpack wrapper for imagemin). Generally gzip on properly optimized images should have negligible effect.
@IljaDaderko you're right about only needing it in prod config. For actual prod environments I generally add uncompressed compiled files, and then either the server (express plugin) or a CDN can do it.

you can enable gzip w/ Express in /server/config/express.js
import gzip from 'compression';

if (ENV === 'production') {
  app.use(gzip());
}

@jrodl3r care to offer a pull request with that added in?

@caranicas not sure which method would be more applicable...
there's also this: https://github.com/webpack/compression-webpack-plugin
also not sure if gZip is an option everyone would want enabled by default.
Maybe add it as commented-out in express config... Dunno, seems so trivial to add, even on AWS/cPanel... maybe see what everybody else thinks first?

@jrodl3r its not something that I had previously concerned myself with, but there doesn't seem to be much of a downside to adding it. Losing IE6 support ??
@IljaDaderko  and I both ran into the issue when Google brought it up. I don't blindly follow everything Google says, but if they are saying it would be beneficial to gzip your assets to delivery your site more quickly, I think they probably know what they are talking about.
And then I was just listening to the latest episode of javascrip jabber and they had Yehuda Katz on as a guest talking about Ember. He said the point of a framework is to solve problems that people didn't know they had. I think compression falls under this. I think as long as we declare it in the readme under features it should be cool. Those that are too naive to know what it is will receive the benefits of it, and anyone that purposefully interested in not compressing their assets would you could safely assume have the skills needed to know where to look to remove it.
@choonkending
As a side note. if we could get the [page speed(https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Freact-webpack-node.herokuapp.com%2F&tab=mobile) numbers a better then we could actually advertise that as a feature as well.

Great points, certainly wouldn't mind it being in there.
Which method do you prefer?
I'd suggest the Express option because it's more "out of the way," and I prefer to keep those webpack config files as clean and dry as possible (they can appear overly complex, to newcomers at first glance).
Then again... What about external / CDN assets? Someone who builds all their assets with webpack, and then chucks a /gz folder up on AWS... They'd probably prefer the webpack plugin option.
Hrmmz...

I'm a bit late in joining the party! Awesome discussion!
I'd prefer the gzipping done on express as @jrodl3r suggested, mainly because it will keep the webpack config files clean.
Webpack holds a lot of image bundling responsibilities, and it makes sense for it to handle gzipping. However, adding gzipping to the webpack config might increase a bit of mental overhead for developers and newcomers. Perhaps we can still decrease the power of our webpack configs,  and let express / nginx whatever edge node handle the optimisation.
I might back track on the above statement, but if possible, let's go with the simplest optimisation that @jrodl3r suggested and roll with that. If we find ever find that external assets really need to be built by webpack and that external server does not handle optimization, we will worry about that then?
@caranicas Yes! Good idea for page speed. (Urgh, 66/100 on mobile is causing my eyes to bleed)

sounds good to me. I can offer a PR today or tomorrow. Figure I'll wrap it in the production flag too?

:+1

Closing this issue, but feel free to continue the discussion!
Also created a separate issue regarding pageSpeed #371


Add button inside alert

Is it possible to add button inside of alert container with the message?

Sure it is. You can use any component as the alert content.


Tooltip rework

We want to make the tooltip smart about the data he shows.
Designs coming soon.

Let's do #134 first

We should also improve the show animation on the tooltip, maybe with a fade-in fade-out technique.

This would be an excellent solution, the mini-tooltip idea for single source line charts is exactly what I'm looking for. I'm gonna adjust the source files on the build in order to do this on my own, since I don't need multi-line charts.
Another thing, it would be really nice if some of the design could happen in CSS, ie being able to assign your own class to the tooltip and make adjustments through that. Exporting more adjustable parameters would also be nice, right now things like tooltipWidth are not useable through config.

Thanks for the feedback @hisnameisjimmy!
I am curious about your request for a custom CSS class, could you use the standard classes on the tooltip?
Yeah, it will make sense to make the width configurable.
Regarding the output in a container div, you can do that right now. You could listen to the mouse events and do anything you want with that information.

A bit of work done in https://github.com/britecharts/britecharts/pull/907

One of the main issues of the Tooltip is that it doesn't listen for the chart height and width, and so it does not have any collision logic to avoid being cut.


Introduce gRPC and Gapic client for Cloud Language API.

Gapic client (language_service_api.rb) and its config (_config.json)
are the wrapper automatically generated from the proto definition
and API configs.

Hi, any feedback?
I don't want to rush you, but I just want to confirm that this is not forgotten.

Hey Jun, haven't forgotten. :) We are waiting to get #813 accepted and then we will create a new gem for language. The file locations will just be different is all.

@jmuk Can you revise this PR and move the files to google-cloud-language/lib?

Rebased, now they are located under google-cloud-language/lib.

@jmuk Thank you!

Coverage decreased (-0.03%) to 95.749% when pulling 6e3480f7b5d0b33fc4780a717a892670f6c00b66 on jmuk:language into 2c23ea4676564402f92f20246c0750b2bc0e3566 on GoogleCloudPlatform:master.

Ugh, rubocop failures... 😞
I'll fix some of them, but probably I'll make exceptions for line lengths and exclude gRPC generated files.

Coverage decreased (-0.03%) to 95.749% when pulling 30f50225153bcdb05d1e24270aa52e1ddbc5d905 on jmuk:language into 2c23ea4676564402f92f20246c0750b2bc0e3566 on GoogleCloudPlatform:master.

I'd exclude all the files you are adding in google-cloud-language/.rubocop.

Coverage decreased (-0.03%) to 95.749% when pulling b7cc25fbc5a3007ac81ae78da9dffd9825046a42 on jmuk:language into 2c23ea4676564402f92f20246c0750b2bc0e3566 on GoogleCloudPlatform:master.

@jmuk Hah! You don't need to disable the rubocop rule if you correct the syntax. :)
Go ahead and remove that line disabling the rule and squash all the commits into one and we'll get this accepted.

You can also run the rubocop report with the following:
cd google-cloud-language
rake rubocop

Although you might need to run bundle install as well. :)

Coverage decreased (-0.03%) to 95.749% when pulling 6c1af890fa6d3e8ed9704071167b2dcdff10e7a6 on jmuk:language into 2c23ea4676564402f92f20246c0750b2bc0e3566 on GoogleCloudPlatform:master.

Awesome! Thanks @jmuk!


OS X: If you go to settings during burn it breaks the progress bar

If, during the burn, you switch to the settings menu by clicking on the gear in the top right hand corner the progress bar will no longer animate correctly:

This may affect other OSes, I have not tested elsewhere.

This indeed happens in all OS. A fix is coming!


Use main now that andrew-npm-8 is merged

Details

In my previous PR here: https://github.com/Expensify/App/pull/10439 We had to use the andrew-npm-8 branch to use the latest code to get the tests to pass.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by @roryabraham in version: 1.1.89-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Weird FROCEAN output in z0044 run

This is an issue I saw when looking at the inst1_2d_ocn_Nx output of Ricardo's z0044 test run. Namely the FROCEAN output had weird blockiness:

These "blocks" were apparent in a difference from x0044 but I found I could tease them out from the file directly by having Panoply display with a color-bar from 0.999 to 1.000. But they are there.
@bena-nasa and I had a thought: Is this due to History regridding the cube fields to latlon? So, with Ricardo's help, I duplicated his z0044 run (technically the above image is from my run, showing it's duplicable) and added a cube-sphere collection version inst1_2d_ocn_Mx. And the output is...interesting:

This is why I'm making a PR here. I am...confused as to how this is happening. I can accept that blocks would be in the cube output if we were doing something wrong...but why didn't regridding to latlon "smear" them? How does regridding keep the blocks...and move them??
(I'm adding a mention of @rsdunlapiv and @oehmke here in case they've ever seen this.)

@mathomp4 , hash would be very helpful

Ah. I was wrong. The @bena-nasa ADAS I cloned was before he needed the updates for pert. Thus, my ADAS clone is rocking v2.6.6. But looking at a comparison:
https://github.com/GEOS-ESM/MAPL/compare/v2.6.6...develop
v2.6.6 doesn't seem to have any changes that would affect this. I want to say the cfio updates in develop are more of a "things crash" fix rather than a "weird blocks in output" fix.

@mathomp4 I am wondering if the "new land" resolves small(er) islands better and we see many more of them. If you have a tiny island in the grid box, it will be labeled land (correctly), and naturally the ocean fraction in such a box will be less than 1. This is just a thought

That was one of my first thoughts as well, but ... I'd still have expected smaller rectangles - possibly correlated; but not large rectangles.

I can't seem to reproduce this, so I'll close for now. If we ever can reproduce it, we'll pick it back up.


Index Navigation (Semantic UI look alike)

Added  index navigation #13  and changed the UI to better suit the new nav.
(was thinking about changing it to react-router but meh)

@hirotachi Thanks for the PR!
Great work.


permit and optional don't work very well together

Describe the problem
If I mark an argument as optional but I still want to validate that if a value is supplied it is correct, I would assume that I can specify the option as optional, and also specify the permitted values. Unfortunately, if I do this and then don't supply the option, I get an error stating it is not a permitted value
Steps to reproduce the problem
argument :command do
  optional
  desc 'The command to run'
  permit %w[run config]
end

Actual behaviour
When using this combination, I get an error
Error: unpermitted value `` for 'command' argument: choose from run, config

Expected behaviour
If I don't supply the argument, it shouldn't validate if it is permitted given I have specified it is optional
Describe your environment

OS version: OS X 11.5
Ruby version: 2.5.3p105
TTY::Option version: 0.2.0

Update: I can make it work by adding nil into the permitted list of options, but this feels a little unnecessary and hacky IMO. But this does work
argument :command do
  optional
  desc 'The command to run'
  permit [nil, 'run', 'config']
end

Thank you for using tty-option and reporting this issue.
This is now fixed.


Set-Location struggles with UNC paths

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
This closed issue still reproduces: https://github.com/PowerShell/PowerShell/issues/13854
Set-Location sometimes struggles with UNC paths.
Expected behavior
`Set-Location \\stallbacka\home\config

Set-Location \
# this should set the UNC root as the new working directory`

Actual behavior
`Set-Location \\stallbacka\home\config
Set-Location \
#Set-Location: Cannot find path 'Microsoft.PowerShell.Core\FileSystem::' because it does not exist.`

The same error can be triggered by going to e.g. cert: first:
`Set-Location Cert:\
Set-Location \\stallbacka\home\config
#Set-Location: Cannot find path 'Microsoft.PowerShell.Core\FileSystem::' because it does not exist.`

Error details
Exception             :
    Type                 : System.Management.Automation.ItemNotFoundException
    ErrorRecord          :
        Exception             :
            Type    : System.Management.Automation.ParentContainsErrorRecordException
            Message : Cannot find path 'Microsoft.PowerShell.Core\FileSystem::' because it does not exist.
            HResult : -2146233087
        TargetObject          : Microsoft.PowerShell.Core\FileSystem::
        CategoryInfo          : ObjectNotFound: (Microsoft.PowerShell.Core\FileSystem:::String) [],
ParentContainsErrorRecordException
        FullyQualifiedErrorId : PathNotFound
    ItemName             : Microsoft.PowerShell.Core\FileSystem::
    SessionStateCategory : Drive
    TargetSite           :
        Name          : ExpandMshGlobPath
        DeclaringType : System.Management.Automation.LocationGlobber, System.Management.Automation, Version=<IP_ADDRESS>0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35
        MemberType    : Method
        Module        : System.Management.Automation.dll
    Message              : Cannot find path 'Microsoft.PowerShell.Core\FileSystem::' because it does not exist.
    Source               : System.Management.Automation
    HResult              : -2146233087
    StackTrace           :
   at System.Management.Automation.LocationGlobber.ExpandMshGlobPath(String path, Boolean allowNonexistingPaths,
PSDriveInfo drive, ContainerCmdletProvider provider, CmdletProviderContext context)
   at System.Management.Automation.LocationGlobber.ResolveDriveQualifiedPath(String path, CmdletProviderContext
context, Boolean allowNonexistingPaths, CmdletProvider& providerInstance)
   at System.Management.Automation.LocationGlobber.GetGlobbedMonadPathsFromMonadPath(String path, Boolean
allowNonexistingPaths, CmdletProviderContext context, CmdletProvider& providerInstance)
   at System.Management.Automation.SessionStateInternal.SetLocation(String path, CmdletProviderContext context,
Boolean literalPath)
   at Microsoft.PowerShell.Commands.SetLocationCommand.ProcessRecord()
TargetObject          : Microsoft.PowerShell.Core\FileSystem::
CategoryInfo          : ObjectNotFound: (Microsoft.PowerShell.Core\FileSystem:::String) [Set-Location],
ItemNotFoundException
FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
InvocationInfo        :
    MyCommand        : Set-Location
    ScriptLineNumber : 1
    OffsetInLine     : 1
    HistoryId        : 9
    Line             : cd \
    Statement        : cd \
    PositionMessage  : At line:1 char:1
                       + cd \
                       + ~~~~
    InvocationName   : cd
    CommandOrigin    : Internal
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo :

Environment data
Name                           Value
----                           -----
PSVersion                      7.4.0
PSEdition                      Core
GitCommitId                    7.4.0
OS                             Microsoft Windows 10.0.22631
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals

TLDR -  It needs tidying up, and for more cases than this one.
Elsewhere in Windows is not consistent about whether you can move to a UNC path or only to a drive mapped to one

If you map a drive letter to a directory under a UNC path you can't cd up from there

In explorer if I type \ from the J: drive or from \\server\share\directory  it takes me to the root of C:
But if cd to a unc subpath in PowerShell  you can cd to .. but not to \ should it go to the main file system like linux, and Windows Explorer or to the root of the share? It's poorly defined and instead of picking one the implementors have it error.

And as you say for other drives  cd function:\ works , but then cd \ fails

Providers like the registry which have a hierarchy treat cd \ correctly, but the function etc don't (IMHO they should treat a cd \ as a No-op)

@9Rune5:

#13854 is undoubtedly still a bug.

The only sensible interpretation of \ or / relative to a UNC location is the root of the share,  namely \\stallbacka\home in your example.

As an aside: On Unix-like platforms, / and \ are invariably interpreted as referring to the root of the file-system, irrespective of the provider underlying the current location. This means that in order to change to the root of the specific provider that underlies the current location, you need to explicitly use the current location's drive name, e.g. Set-Location Temp:\

As for trying  Set-Location \\stallbacka\home\config while a provider OTHER than FileSystem underlies the current location, such as the Certificate provider, via its Cert:\ drive:

The problem is that a path starting with \\ currently isn't recognized as a FileSystem provider location on Windows.

Currently,  the logic is to interpret a \\ prefix as drive-and-therefore-provider-relative, presumably based on the logic that  accidental duplication of path separators as  \\ and // is acceptable in calls such as Get-ChildItem C:\\ (on Windows) and Get-ChildItem //tmp (on Unix-like platforms).

However, arguably it would be more sensible to interpret  \\ at the start of a path on Windows as unequivocally referring to a UNC file-system location: see https://github.com/PowerShell/PowerShell/issues/10522#issuecomment-1233028415

@mklement0 A random thought: Would it make things more consistent if UNC paths were handled by a UNC provider? I.e. Set-Location unc:\\stallbacka\home.

@9Rune5, I don't think that's necessary - my suggestion is to simply start interpreting UNC paths unconditionally as such; while technically a breaking change, I would expect very little, if any, existing code to be impacted; see:

#20897


2md

Changed the structure of the repo. Also changed all files to meet the criteria of jupyter notebook or markdown. Pushing into restructure-repo so that Raymond can merge in and review the material.

TODO: lesson 00, slide 5, extra **.


Disallow unsafe code in target_clones functions

The most important contribution in this PR is to disallow running unsafe code in target_clones functions.
Additionally I have renamed the cloned functions to more telling names instead of just being called __clone_[id].
Finally I updated the implementation details section in the documentation.

Interesting point with the recursion--that's a clever trick.  I think there is a broader class of issues of multiversioned functions nested in other multiversioned functions (not necessarily recursion), but this is definitely an elegant solution to the recursion case.

If only we had target_feature for modules, then that more general problem would be much easier to solve.


Display tag names in report

The tag names could be listed in the report, instead of just showing the symbol.
The symbol is the same for all tags

Hi @gernotstarke
I've added the icons (single for one tag and double for 2 or more tags) to keep it more clear. Tags can be used heavily/be very long and can mess up the table.
There's a PR which will be released in a couple of days that will make it possible to filter on tags from the search box. I've you have any improvements on the design then please let me know.
Going to close this one as this is how the report is currently working, but as said, if you have a better idea / design then please let me know


Send parameters to webhook on dialogflow via payload

Is your feature request related to a problem? Please describe.
For my dialogflow fulfillment I pass some custom values which I retrieve through original detect intent request. Currently I cannot simulate this for my automation tests.
Describe the solution you'd like
I would like to simulate parameter addition through payload for automation tests.
Describe alternatives you've considered
It can be done via queryParams.payload. https://cloud.google.com/dialogflow/docs/reference/rest/v2beta1/QueryParameters
More specifically, we could use the UPDATE_CUSTOM poweful featuew and pass a json object as payload
e.g. in dialogflow connector code -> index.js -> UserSays() :
if (msg.SET_DIALOGFLOW_PAYLOAD) {
  this.queryParams.payload = structjson.jsonToStructProto(msg.SET_DIALOGFLOW_PAYLOAD)
}

and use it like this
#me
hello
UPDATE_CUSTOM SET_DIALOGFLOW_PAYLOAD|{"data":"test"}

Additional context
Not relevant,but locally I trigger custom events through BUTTON. Botium is really great guys!

Good point. Added to backlog, will be part of the October build.

PR is on the way: https://github.com/codeforequity-at/botium-connector-dialogflow/pull/17

Part of the latest Botium build.
https://github.com/codeforequity-at/botium-connector-dialogflow#dialogflow-query-parameters


Auto Update for PKGi

Hello Mozeiko !
First time thank you for the application, it's really great work.
It's possible to add an autoupdate to the PKGi application?
Thx

There doesn't seem to be nice clean way to auto update homebrews. Next version at least will include automatic versions check (#4) so you will be notified when newer versions are released.

Doesnt VitaShell have autoupdates?

they have rolled their own   basicly the application downloads an application that installs the new vitashell and then opens that
vitashell update prompt accepted.
Vitashell downloads and installs updater
Vitashell opens that application and closes itself
you see livearea then the updater
updater updates the vitashell application.

Here is theflow's implimation of auto update in vitashell.   The application just prepairs this and calls this application.
https://github.com/TheOfficialFloW/VitaShell/tree/master/updater

I have seen that implementation and I know how it works. That approach doesn't seem very "clean" to me. I'm trying to figure out if there is better way without need to install external updater application.


Updates pool reg for FraxBP USDs pool

Should this script include func.skip once its been executed? This will prevent it from re-running the next time we run deploys on this network.


Update anti-cookie+sign up.txt to remove unneeded lines

https://github.com/iam-py-test/my_filters_001/blob/a63c30ba0846a483416250b8d8a629b48d2ea6e9/anti-cookie%2Bsign up.txt#L173 has lines that are not needed

This issue is old

This issue is old

Hi

Hi!


cleanup: resolves gocritic linter issues

This commit resolves gocritic linter errors.
Fixes: #2250
Signed-off-by: Yati Padia<EMAIL_ADDRESS>

If this PR should automatically close issue #2250, use Fixes: #2250 in the PR description instead of Updates: .

/retest ci/centos/mini-e2e/k8s-1.21

/retest ci/centos/mini-e2e/k8s-1.19

/retest ci/centos/mini-e2e-helm/k8s-1.21

/retest ci/centos/mini-e2e-helm/k8s-1.20

/retest ci/centos/mini-e2e-helm/k8s-1.19


Use Lab D65 for ∆E 2000 calculations

CSS uses D50 because that is the only Lab in the spec,
but most implementation use D65. Typically D50 is the
choice for reflective (i.e. Paper) or transmissive readings,
while displays would typically use a measured white reference,
or D65.

It should be noted that things like the Sharma tests are relative to Lab itself, so those tests stand correct as long as they are done with Lab values with consistent white points.
While I don't fully understand why CSS chose Lab D50 for their spec and not Lab D65, or even included both, I understand why they settled out use Lab D50 in their implementation of the ∆E 2000, but we have a choice, so we'll do it like everyone else does and use D65 which matches most displays.

@gir-bot lgtm


Abs chill mods

After AbsorptionChiller was uncommented from @testset "Heat and cool energy balance", the first test for "cooling production from techs equals the cooling load plus TES losses" is failing. The test is showing that there is excessive amounts of TES losses (TES charge energy minus TES discharge energy), and the techs are not supplying that extra loss. When AbsorptionChiller is not included in the test, the model is not showing these excessive losses, so somehow the AbsorptionChiller is allowing unserved TES losses.
Note that I changed some variable naming, and the Hot and Cold TES sizes for this test, but that is not consequential to the test result because it's an energy balance test.

@Bill-Becker looks like the missing defaults you mentioned in a separate comment in https://github.com/NREL/REopt.jl/issues/14 is at least part of the problem.  Let me look into this today and follow up?

@zolanaj sounds good, thanks!

@zolanaj thanks for the review and adding the CHANGELOG.md stuff. I'm going to merge.


fix the failing docs

The docs have been failing because of a malformatted docstring we inherit from pandas, and this caused us to miss another error in #8183. The fix is to avoid installing pandas=2.1.0, which should be the only version with the malformatted docstring, and to apply the missing changes from #8183 here.

[x] Closes #8157, follow-up to #8183

@keewis The docstring is fixed already https://github.com/pandas-dev/pandas/pull/55050 and should be release with pandas 2.1.1 around 20th of September. We can try to remove the pinning when that release is finally out.

by pinning to !=2.1.0 I was hoping that 2.1.1 or 2.2.0 would automatically be picked up without us having to modify the environment file again.

by pinning to !=2.1.0 I was hoping that 2.1.1 or 2.2.0 would automatically be picked up without us having to modify the environment file again.

Great, overlooked that one.

that's interesting... I activated "auto merge", then restarted a ci job because one of the jobs was flaky (netcdf4 + multithreading), but automerge activated as soon as RTD was done, even though the restarted job is still running

Thanks! Sorry I missed the error prior. Having the tests be green in the good state is very helpful for catching errors...

It looks like pandas milestoned the fix for 2.2 so we might have to revisit the pinning.


tmux module: add secureSocket option

Motivation for this change
Found that tmux sessions currently don't survive logouts (e.g. X11 restart) unlike on old NixOS releases (before https://github.com/NixOS/nixpkgs/commit/60025e35248193b37dc5f6b5f18f8eb33bea2c3c). So add an option so user will be able to revert this behaviour back.
/cc @peterhoeg
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

@peterhoeg Thanks!


ignite-22240: Improve handling for RocksDb resources in DefaultLogStorage and SharedRocksDbInstance

Thank you for submitting the pull request.
To streamline the review process of the patch and ensure better code quality
we ask both an author and a reviewer to verify the following:
The Review Checklist

[ ] Formal criteria: TC status, codestyle, mandatory documentation. Also make sure to complete the following:
- There is a single JIRA ticket related to the pull request.
- The web-link to the pull request is attached to the JIRA ticket.
- The JIRA ticket has the Patch Available state.
- The description of the JIRA ticket explains WHAT was made, WHY and HOW.
- The pull request title is treated as the final commit message. The following pattern must be used: IGNITE-XXXX Change summary where XXXX - number of JIRA issue.
[ ] Design: new code conforms with the design principles of the components it is added to.
[ ] Patch quality: patch cannot be split into smaller pieces, its size must be reasonable.
[ ] Code quality: code is clean and readable, necessary developer documentation is added if needed.
[ ] Tests code quality: test set covers positive/negative scenarios, happy/edge cases. Tests are effective in terms of execution time and resources.

Notes

Apache Ignite Coding Guidelines

Hey @rpuch, could you check this PR as well??
Perhaps we should as @ibessonov for a review as well.


Use UMD modules

The application could be rewritten using UMD modules.
It could still be used as a browser global but this way it would also work as CommonJS or AMD. Require.js users could require it instead of having to write a shim.
I could do this in a fork, if this is something that we would like to attempt. I feel like trying it. : )

I don't think we want to convert over to UMD internally, but I'd be interested to know what's involved in making OSD easily plug into things like require.js.

When using an UMD module the module returns a different type of module depending on what you are using to require it, so internally the project would still be relying on a browser global, and a user that added the library with a <script> tag in the header would receive a browser global too. But a user that required the library with Require.js or Browserify, on the other hand, would receive an AMD module or an CommonJS module instead, which is the useful thing about it.
Internally this would involve changing this...
(function( $ ){
  // ...
}( OpenSeadragon ));

...with the slightly longer UMD version, and setting up the dependencies inside the project.
I guess you could instead surround everything with an UMD wrapper after the concat step in the build, there are plugins that do it. I think the bad side of that would be that in your project you would not be stating internal dependencies of a module to another module, which sounds like an interesting thing to have I guess.
But all this is just an idea, anyway... I was thinking about it and it occured to me that it would be an interesting thing to try. It could be that there are circular dependency problems and it's not possible to do it.

What about ES6?

You could do that and transpile to UMD but it seems like a bigger change.

Right, thanks. I was just mentioning that as well, since I'm playing with Aurelia framework where ES6/7 is supported and I have to make a shim for OSD (don't "have" to) :)

@msalsbery that sounds interesting
@iangilman now that I think about it, you are totally right, UMD shouldn't be used internally, it's an external wrapper.

@Emigre Cool. Are you up for making a patch with the wrapper?

@iangilman yeah, I'll take a look at it during the weekend

Sounds good :)

I've been a little bit confused about how to achieve this and this is what I think could be done.
I think that we want it to do what jQuery does, to register itself as an AMD module if required but also to always be available in the window as a global.
I was thinking on surrounding the code with something like this. It could be done with a new step in the build process. But I think I'd rather not to complicate your build just for this.
A simpler option would be to put this...
if (typeof define === 'function' && define.amd) {
   define(function () {
       return (window.OpenSeadragon);
   });
}

...after this line in openseadragon.js. It seems like a minimal change and it would essentially do the same.
But I'm not entirely sure if this all is worth it or if it's a good idea.
cheers

I agree we want it both ways. If those few lines will take care of it, sounds good to me. Have you tested it in a UMD/AMD environment?

I've tried it in a repo and it seems to be all right: https://github.com/Emigre/openseadragon-requirejs
I have this in a fork, I can do a MR if you want to use it.

Yes please :)

I've thought about this lately and I think it was a big mistake to have done it. Modules are supposed to guarantee execution order. First the module loader will inspect all the code of all files to see the modules that are being defined, then it will load the modules in the order needed by the dependencies.
With the code we have at the moment what happens is that during the first step when the code is checked OpenSeadragon is executed and is put in the browser global. Then during the module loading phase dependencies are analysed and executed in order, but when the time comes to serve OpenSeadragon, its module just delivers a reference to the global that was already there.
This is bad... Imagine that somebody needs to run some code before OSD runs... He would state the dependencies in its code and expect that OSD runs not before the time he is expecting, while in reality it will always be loaded the first. Therefore we are deceiving the user by offering this functionality when OSD does not really export itself as a module. In my opinion we should roll back this change -  it was a big slip-up on my part to have proposed it.

Interesting point! What would it take to go one step further and make it properly support module loading order?
Also, forgive my lack of experience on this subject, but since OSD does nothing but define its classes until you actually call, what sort of thing would you need to do before then?

@emigre Any thoughts on my questions above? I'm happy to roll back the change, but would like to know a little more about the situation.

Hey @iangilman, sorry, I completely forgot about this thread... I have been busy lately.

What would it take to go one step further and make it properly support module loading order?

My impression is that ideally the end result should be that after the build the whole plugin ends up being wrapped in the UMD module; so I imagine that the build has to be modified to output it like that. Then it would have to be tested with the different module loaders to check that it is behaving as expected, and I think with plugins to see that it all works as expected with no ugly surprises.
I think that inside inside OpenSeadragon we work with the global object, right? I imagine that it's ok for that code to define the global object and this means that the UMD probably does not have to output a browser global as one of its choices - it has already been created in the code. I'm not sure how jQuery handles this exactly, haven't taken a look at it in a while.
We currently don't offer a CommonJS module, but since this issue was created we have made available OpenSeadragon as a npm package, so perhaps we want to offer it now, for Browserify.

Also, forgive my lack of experience on this subject, but since OSD does nothing but define its classes until you actually call, what sort of thing would you need to do before then?

I guess that you are right, I can't imagine anything right now. I guess it's a matter of... well... offering something that is not really behaving as the user would expect it to behave. I can't think of anything at the moment, to be honest.
Well, that's it, I think.  I'm sorry as I don't have a lot of time lately to take a look into this, I think it's an interesting subject and making it work as a module seems like a nice enhancement.

Oh! I've just seen #984 about outputting a CommonJS module

Oh! Funny, I'd gotten the much more recent #984 mixed up with your #719. Okay, less confused now.
So maybe we're good with #984, or is there more that you would suggest doing?


Fix typo in terminus-completion example

Fix a line that probably should have been updated in https://github.com/pantheon-systems/cli/pull/313

Whoops. Thanks!


WSL2 cannot connect to <IP_ADDRESS> 23432 when the gamecore server is running on Windows

First of all, thank you very much for your meaningful work.
Now，WSL2 cannot connect to <IP_ADDRESS> 23432 when the gamecore server is running on Windows.
I'm not sure what's wrong, the gamecore service or WSL2?
1、Start the gamecore server outside wsl2 successfully??
G:\Kaiwu\hok_env_gamecore_20221202\gamecore>gamecore-server.exe server --server-address :23432
[GIN-debug] [WARNING] Running in "debug" mode.  [False, False]
Pb2Struct::InitChangeType usedefault=offline
Pb2Struct::InitChangeType change_type=offline
Pb2Struct::InitMainHeroType, no main_hero_type, use default mvp
Traceback (most recent call last):
  File "/home/max/py36/lib/python3.6/site-packages/urllib3/connection.py", line 175, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw
  File "/home/max/py36/lib/python3.6/site-packages/urllib3/util/connection.py", line 95, in create_connection
    raise err
  File "/home/max/py36/lib/python3.6/site-packages/urllib3/util/connection.py", line 85, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/max/py36/lib/python3.6/site-packages/urllib3/connectionpool.py", line 710, in urlopen
    chunked=chunked,
  File "/home/max/py36/lib/python3.6/site-packages/urllib3/connectionpool.py", line 398, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/home/max/py36/lib/python3.6/site-packages/urllib3/connection.py", line 239, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/usr/lib/python3.6/http/client.py", line 1291, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1337, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1286, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1046, in _send_output
    self.send(msg)
  File "/usr/lib/python3.6/http/client.py", line 984, in send
    self.connect()
  File "/home/max/py36/lib/python3.6/site-packages/urllib3/connection.py", line 205, in connect
    conn = self._new_conn()
  File "/home/max/py36/lib/python3.6/site-packages/urllib3/connection.py", line 187, in _new_conn
    self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fbb25f4f7b8>: Failed to establish a new connection: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/max/py36/lib/python3.6/site-packages/requests/adapters.py", line 450, in send
    timeout=timeout
  File "/home/max/py36/lib/python3.6/site-packages/urllib3/connectionpool.py", line 788, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/home/max/py36/lib/python3.6/site-packages/urllib3/util/retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='<IP_ADDRESS>', port=23432): Max retries exceeded with url: /v2/stopGame (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fbb25f4f7b8>: Failed to establish a new connection: [Errno 111] Connection refused',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test_env.py", line 124, in <module>
    config_dicts=[{"hero": "diaochan", "skill": "frenzy"} for _ in range(2)],
  File "test_env.py", line 48, in test_send_action
    use_common_ai=common_ai, eval=eval, config_dicts=config_dicts, render=None
  File "/home/max/hok_env-master/hok_env/hok/env1v1.py", line 716, in reset
    self.game_launcher.start(config_dicts, common_config)
  File "/home/max/hok_env-master/hok_env/hok/gamecore_utils.py", line 438, in start
    self.remote_gc_proc.remote_stop()
  File "/home/max/hok_env-master/hok_env/hok/gamecore_utils.py", line 301, in remote_stop
    self.launch_server, "stopGame", self.user_token, data, ignore_resp=True
  File "/home/max/hok_env-master/hok_env/hok/gamecore_utils.py", line 272, in send_http_request
    resp = requests.post(url=url, json=data, headers=headers, verify=False)
  File "/home/max/py36/lib/python3.6/site-packages/requests/api.py", line 117, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/home/max/py36/lib/python3.6/site-packages/requests/api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "/home/max/py36/lib/python3.6/site-packages/requests/sessions.py", line 529, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/max/py36/lib/python3.6/site-packages/requests/sessions.py", line 645, in send
    r = adapter.send(request, **kwargs)
  File "/home/max/py36/lib/python3.6/site-packages/requests/adapters.py", line 519, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<IP_ADDRESS>', port=23432): Max retries exceeded with url: /v2/stopGame (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fbb25f4f7b8>: Failed to establish a new connection: [Errno 111] Connection refused',))
check game stopped.
[Warning] Check game status error, stop it directly. HTTPConnectionPool(host='<IP_ADDRESS>', port=23432): Max retries exceeded with url: /v2/stopGame (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fbb260fc160>: Failed to establish a new connection: [Errno 111] Connection refused',))

I don't know what's wrong, how to solve this problem? How do you configure the environment?

I also meet the same problem now,so have you sloved this problem now? @Caiderkoujiao

Besides, gamecore-server.exe should be allowed to work on all network interface.

You can delete the inbound rule for the gamecore-server.exe in firewall setting to reset the setting before.

I am really thankful for your reply.And I solved some problems with your help.But unfortunately，I meet some new problems now.
First,I got the nameserver and connect it with my command telnet.

Then I delete the inbound rule as what you tell me to do.But when I start python test_env.py ,there is still some fault there.

I am looking forward to your reply.Thank you!

I am really thankful for your reply.And I solved some problems with your help.But unfortunately，I meet some new problems now.
First,I got the nameserver and connect it with my command telnet.
image
image
Then I delete the inbound rule as what you tell me to do.But when I start python test_env.py ,there is still some fault there.
image
I am looking forward to your reply.Thank you! @hongyangqin @Caiderkoujiao @tencent-ailab @HIT-jixiyang

I am really thankful for your reply.And I solved some problems with your help.But unfortunately，I meet some new problems now.
First,I got the nameserver and connect it with my command telnet.

Then I delete the inbound rule as what you tell me to do.But when I start python test_env.py ,there is still some fault there.

I am looking forward to your reply.Thank you! @@hongyangqin @Caiderkoujiao @tencent-ailab @HIT-jixiyang

First,I got the nameserver and connect it with my command telnet.
Then I delete the inbound rule as what you tell me to do.But when I start python test_env.py ,there is still some fault there.
I am looking forward to your reply.Thank you!
------------------ 原始邮件 ------------------
发件人:                                                                                "tencent-ailab/hok_env"                                                                                @.>;
发送时间: 2022年12月20日(星期二) 中午11:17
@.>;
<EMAIL_ADDRESS>主题: Re: [tencent-ailab/hok_env]  WSL2 cannot connect to <IP_ADDRESS> 23432 when the gamecore server is running on Windows (Issue #11)
In wsl, the <IP_ADDRESS>  in wsl is not same with <IP_ADDRESS> in the windows. You need to use the nameserver of the wsl to access the server process running on windows.
See also https://learn.microsoft.com/en-us/windows/wsl/networking
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>


Copyedit data unavailability lab

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/6f9f3d81b6313697a1ab0f96b38bcb8bbf6b4191/

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from Reviewable


DbMap.Get() returns (nil, nil) if no row is found. Is this a bug?

Example:
package main

import (
	"database/sql"
	"fmt"

	_ "github.com/lib/pq"

	"gopkg.in/gorp.v2"
)

type Foo struct {
	ID  int64  `db:"id,primarykey"`
	Bar string `db:"bar"`
}

func main() {
	db, _ := sql.Open("postgres", "postgresql://...")

	dbMap := gorp.DbMap{Db: db, Dialect: gorp.PostgresDialect{}}
	dbMap.AddTableWithName(Foo{}, "foo").SetKeys(true, "ID")
	foo, err := dbMap.Get(Foo{}, 999) // There is no row corresponding to id = 999
	fmt.Println(foo, err) // The output will be nil, nil
}

DbMap.Get() returns (nil, nil) if no row is found.
I think it should returns (nil, error) if gorp cannot find any record.
Is this a bug?
or is there any reason?

I don't know the history, but it does seem that this is explicitly handled: https://github.com/go-gorp/gorp/blob/master/gorp.go#L427-L429
@coopernurse it looks like you were the last to touch that explicit line.  Is there any chance that you remember the context around why we're avoiding returning sql.ErrNoRows in dbmap.Get?

ensure your connection is ok.
this happens if connection failed


Swift Concurrency support

Xcode 13.2 Beta is released now. We are getting closer to use Swift Concurrency in the real life. I wish async branch will be merged.
Thank you.

This seems like a duplicate of Issue #326

Tracked in #326.


Status code "60"

Beware: the status code "60" does not mean the payment was successful.
lib/Sips/PaymentResponse.php
public function isSuccessful()
{
    return in_array($this->getParam('RESPONSECODE'), array("00", "60"));
}

Thank you for pointing out. we will look into this


feat: events: JESUS FEST KUOPIO, ready

#103  👈
development

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @Hessuew and the rest of your teammates on  Graphite


Improvements to Validation API!

This is issue is for suggesting improvements to the Javalin's validation API (Validator/Rule classes)
To consider:

Allow Nullable Types to Be Processed By Validator (https://github.com/tipsy/javalin/issues/991)
Allow custom validation errors and validation rules overriding (https://github.com/tipsy/javalin/issues/993)
Add validator method returning default value (https://github.com/tipsy/javalin/pull/835)

@MrThreepwood I'm going through the Validator class, and I find myself removing a some of your code. I felt like isValid and hasErros and errors were all three sides of the same coin. They also complicate the code quite a bit, so I replaced them all with just errors - this you can check in your controller with isEmpty and isNotEmpty. I think I will  move the collectErrors method too. I will publish a branch soon.

PR is here: https://github.com/tipsy/javalin/pull/1261
Locally I was working on starting with a NullableValidator now, and having NullableValidator#notNull, but I don't like having to call that for every validation. I'll se if it's possible to do Validator#allowNullable instead.

@MrThreepwood you now have:
Validator#get // T
Validator#check // Takes Check<T>
Validator#errors
Validator#allowNullable // returns NullableValidator

NullableValidator#get // T?
NullableValidator#check // Takes Check<T?>
NullableValidator#errors

Is this moving in the right direction?

isValid and hasErrors I believe was for backward compatibility. Those functions were in the BodyValidator, and while I was making changes I moved them to the base class to keep from duplicating so much code.
I think the nullable validator will work.
Some other potential nice to haves for updating the API would be to change the check signature:
    open fun check(vararg predicate: (T) -> ValidationError?): Validator<T>

Validation error could be an interface that has a message in it. This lets you call check with something like
    check(isNotEmpty(), emailIsNotTaken(), isValidEmail())

But more importantly it allows the Map<String, List> of errors to instead be Map<String, List>. Currently a simple string can be a bit difficult to use for localization, as you can't provide additional arguments. This means that the string must be pre-localized in finished form, requiring that you do the localization on the server, and that you have to do the localization logic in the controller (or wherever it is you're building your validator). Of course, it does complicate overriding messages.
The more important part is just changing the  string parameter of check. Alternatively it could be kept closer to the current version:
    open fun check(predicate: (T) -> Boolean, error: ValidationError = ValidationError("Failed check")): Validator<T>

This would also allow easily overloading the check function to allow passing the simple string as it does now.
The current flow of Validator does make the creation of standard validator functions more difficult as well, or at least their use. For a bodyValidator you end up doing something like
    ctx.bodyValidator<User>()
        .check("email", { isValidEmail(it.email) }, "The email is not valid")

If you take a property instead, you could do something like
    ctx.bodyValidator<User>()
        .check(User::email, isValidEmail, "The email is not valid")

Using the property you could get the field name, and the value to be tested.
    fun <R> check(
        property: KProperty0<R?>,
        vararg validators: (R?) -> ValidationError?,
        key: String = property.name
    )

Of course, this is begging to get very kotlin focused, this sort of function would not be callable from Java. The syntax I am currently using is this:
val testModel = TestModel("test", TestChildModel("testChild"), makeChildren("listChild1", "listChild2"))
defaultValidator.collectErrors {
    validate(testModel::string, isNotEmpty(), isNotNull(), longerThan(5))
    validate(testModel::childObject) {
        validate<String>(it::childString, isNotEmpty())
    }
    validateEach(testModel::listOfChildren) {
        validate<String>(it::childString, doesNotMatch("listChild1"))
    }
}

I really stopped working for today, but I quickly tried
fun check(property: KProperty0<T?>, predicate: (T) -> Boolean, errorMessage: String = "Failed check"): BodyValidator<T> {

since it looked so alluring, but IntelliJ ended up correcting my signature to
fun check(kMutableProperty1: KMutableProperty1<T, String>, predicate: (T) -> Boolean, errorMessage: String = "Failed check"): BodyValidator<T> {

Since the class in the test happened to be a Java class. I guess we might end up with a lot of overloads for this?
I didn't have time to read the rest of you comment properly, but I will tomorrow :)

I'm struggling a bit with the default error messages. They are very nice to have for debugging, but they're pretty useless in a real world scenario. Should I just get rid of them?

@MrThreepwood I think we're a step closer to how you'd like it, please have another look :)

I'm not seeing any changes since 23 hours ago? Maybe you forgot to push? As for the default error message, check can't reasonably provide a useful default, but a standard set of validators could, which is one of the reasons I have been using
(R) -> ValidationError?

as the predicate. Then the predicate can be written as:
fun isRequired(error: ValidationError = ValidationError("This field is required.")): (Any?) -> ValidationError? {
    return {  if (it == null) error else null }
}

I'm not seeing any changes since 23 hours ago? Maybe you forgot to push?

You don't see the two commits at the bottom here? https://github.com/tipsy/javalin/pull/1261/commits

I do now, yeah. I think there's a fair amount of added complexity with nullable validator. What do you think of removing the nullable validator and just making the default validator nullable? Then just having a get() which essentially runs an additional rule to assert it's noot null (maybe with a default value for the error message that can be overriden with a paramater to get?) and a getOrNull() that just runs the rules as is?
All of the checks could still be on type T instead of T? and just not run if the value is null.

In the latest patchset I did a couple of things:

Introduced a common BaseValidator for most of the logic (got rid of all duplicated code)
Changed errorMessage: String to errorProvider: () -> String, so you can log or whatever
Changed the custom null-check logic into a general rule that's added first

Do you think having a base class and two objects that inherit it is too much complexity, or was is the duplicated code (which is gone now) ?

All of the checks could still be on type T instead of T? and just not run if the value is null.

But wouldn't you see the value as non-nullable then?

The biggest issue I see in general is that the error is still a string which makes localization difficult and would prevent my team/company from using it

I'm working my way there!

Yes, you're right, part of the purpose was to allow predicates to run on null values. I'm not entirely sure how useful it is to have an error provider rather than a String? You can always make your predicate log if it fails.

I'm not entirely sure how useful it is to have an error provider rather than a String?

I agree, not very useful at all. Getting rid of it.

TODO:

[ ] Evaluate rules just 1 time
[ ] Return all errors, not just first
[ ] Throw illegalstate if calling allowNullable after check

Sorry if I'm a bit slow @MrThreepwood, I use this component very differently from you. I usually do all my validation on the client side, and I use Javalin to fail the request on the server side (rather than provide meaningful feedback). I'm sort of trying to guess how you use it, and come up with a solution that works for both of us.
Of the items on my TODO list, I'm still having some trouble with ValidationError instead of String?, and how this helps with localization. If I understand your use-case correctly, evaluating a field should yield something like this:
{"username": ["NULLCHECK_FAILED", "USERNAME_TOO_SHORT", "USERNAME_ILLEGAL_CHARACTERS"] }

Isn't it possible to use these keys for localization?

Please check the latest patchset @MrThreepwood, I'm actually starting to like how it looks now :)
All responses are now on the form {"fieldName": ["error1", "error2"]}, including nullchecks, type conversion, and json deserialization. I've set the Class#simpleName to be the fieldName by default for de-serialized objects.
{"NonSerializableObject":["DESERIALIZATION_FAILED"]}
{"SerializeableObject":["value1 must be 'Bananas'"]}
{"my-qp":["NULLCHECK_FAILED"]}
{"my-qp":["TYPE_CONVERSION_FAILED"]}
{"SerializeableObject":["Unnamed field - Check 1","Unnamed field - Check 2"],"named_field":["Named field - Check 3"]}

Client side validation is nice, but they can't do all validation, as some things require DB access. Whether an email address is already taken for example. You could make a seperate call for that of course.
The problem with trying to use a string is that you can't include variables. Imagine an API where you create different events for some sort of conference. The conference has a start time and an end time. In order for an event to be valid for a conference the event needs to be within that time. How do you use a string to tell a user: "The Event's start time must not be before 12/08/2021."?
For use, we sent something like this
{
    "start_time": [ {"message": "START_TIME_TO_EARLY", "args": ["12/08/2021"]} ]
}

Start time to early translates to: "The Event's start time must not be before {date:0}.", or something similar. And perhaps args would be better off as a map than an array, but that's kind of why I suggested having a ValidationError interface that just has message. That way you can have the default formatter serialize things exactly as you have them, but if someone wants to provide their own handler for validation errors then can check the type for more information.

I like that it's collecting all errors now and that you can process rules on potentially null values. I think it's just generally quite a bit cleaner now as well.
I don't like the use of the BadRequestResponse though. Right now it's just funneling all the errors into their as a string argument formatted as json. It would be difficult for users to override the format of the response. Maybe it would be better to create a specific exception for validation, a validation exception? Ideally it would have an argument that contains the errors and Javalin users could then handle the response however they like, though by default  you could essentially just do what you're currently doing.
For example, on all of our error responses we add a request ID to the metadata of the response. All our logs are tagged with request IDs making it easier for us to figure out what happened. While this is not as important for a validation error (I mean, the error should tell you exactly what went wrong ideally), it'd be nice to keep this standard. While it's possible to build a json object out using the string provided in BadRequestResponse, it's not ideal.

The problem with trying to use a string is that you can't include variables. ... How do you use a string to tell a user: "The Event's start time must not be before 12/08/2021."?

Technically you must have all of this information in your controller (since that's where the validator is created). If you have the error message (your message bundle key), and the value, you can build your error message like this:
val errorMessage = bundle.getMessage(errors["start-time"],     ctx.queryParam("start-time"))
// evaluates to    bundle.getMessage("START_TIME_TO_EARLY",    "12/08/2021")

We could do fieldName to (error, value) though, so you could do:
val error  = errors["start-time"]
val errorMessage = bundle.getMessage(error.message,            error.value))
// evaluates to    bundle.getMessage("START_TIME_TO_EARLY",    "12/08/2021")

When you're saying args could be a map instead, you're kind of losing me again. Shouldn't the args be restricted to the value, or things existing outside of the validator? Why would you format this inside of the validator, insted of outside?

I don't like the use of the BadRequestResponse though. Right now it's just funneling all the errors into their as a string argument formatted as json. It would be difficult for users to override the format of the response. Maybe it would be better to create a specific exception for validation, a validation exception? Ideally it would have an argument that contains the errors and Javalin users could then handle the response however they like, though by default you could essentially just do what you're currently doing.

Fair enough, let me take a stab at it.
TODO:

Include value in error map
Rewrite to throw ValidationException(errors)
Add default mapper for ValidationException (which can be overwritten)

A stab has been taken. The public API for creating rules is still unchanged, but you now get your errors as:
fun errors(): Map<String, List<ValidationError<T>>> = errors

Where ValidationError is:
data class ValidationError<T>(val message: String, val value: T?)

The ValidationExcepion contains this map of errors, which by default is just mapped using ctx.json(), but this can be overridden. Default output is now:
{"SerializableObject":[{"message":"DESERIALIZATION_FAILED","value":"not-json"}]}
{"SerializableObject":[{"message":"value1 must be 'Bananas'","value":{"value1":"FirstValue","value2":"SecondValue"}}]}
{"id":[{"message":"id was not greater than 10","value":4}]}
{"first_name":[{"message":"Too long","value":{"first_name":"Mathilde"}}]}
{"my-qp":[{"message":"TYPE_CONVERSION_FAILED","value":"abc"}]}

There's lots of other places that you could do your localization, including on the front end. For my provided example, there could be two arguments you need to process the message into a localized string.
{
    "start_time": [ {"message": "DATE_MUST_BE_BETWEEN", "args": ["2021/12/04", "2021/12/23"]} ]
}

But seeing as each argument could have a different JSON type (mostly just int/string/boolean) it might be more reasonable to do:
{
    "start_time": [ {"message": "DATE_MUST_BE_BETWEEN", "args": {"start":"2021/12/04", "end":"2021/12/23"}} ]
}

With the value of DATE_MUST_BE_BETWEEN being something like this in english: "This date must be between {short_date:start} and {short_date:end}."
I'm not really sure how useful the value of the parameter itself is, but I suppose It could be useful?
But again, I really don't think my company's the target audience for this solution, so it might be better to just keep things simple. I don't think having the change from List to List in the error is super helpful with the current implementation, as there is no way to override ValidationError and add additional functionality.

I understand that there could be several arguments going into formatting a message, what I don't understand is why the Validator class should be responsible for keeping those arguments. You could format the message when sending it into the Validator, or you could format it after getting the error out from the Validator. Both of those options make more sense to me.
I'll merge this PR now, but feel free to create a PR with a couple of tests that illustrate the benefit of making an interface for errors, and passing additional data.

But again, I really don't think my company's the target audience for this solution

Whether you want to help make the Validator suit your use case it really up to you, I'm doing my best to clearly understand what exactly you need, but I just haven't been able to yet :)

The point is that you really can't format the error after retrieving it from the validator. During validations, you have to tell the validator: check("start_date", { it > some_date && it < some_other_date }), "here's an error")`. This then fails, so you can now format it in the exception handler for validation errors, but what were the dates? How do you access them?

@Test
fun `localization is possible`() = TestUtil.test { app, http ->

    val msgBundle = mapOf(
        "NUMBER_NOT_IN_RANGE" to mapOf(
            "en" to "The value has to larger than {0} and smaller than {1}",
            "fr" to "La valeur doit être supérieure à {0} et inférieure à {1}",
        )
    )

    val errorKey = "NUMBER_NOT_IN_RANGE"

    // Alt 1, format going in
    val rangeController = object {
        val lowerLimit = 5
        val upperLimit = 10
        fun registerNumber(ctx: Context) {
            val locale = ctx.queryParam("locale")!!
            ctx.queryParam<Int>("number")
                .check({ it > lowerLimit && it < upperLimit }, MessageFormat.format(msgBundle[errorKey]!![locale]!!, lowerLimit, upperLimit))
                .get()
        }
    }
    app.get("/1", rangeController::registerNumber)
    assertThat(http.getBody("/1?number=20&locale=en")).contains("The value has to larger than 5 and smaller than 10")
    assertThat(http.getBody("/1?number=20&locale=fr")).contains("La valeur doit être supérieure à 5 et inférieure à 10")

    // Alt 2, format going out
    val altRangeController = object {
        val lowerLimit = 5
        val upperLimit = 10
        fun registerNumber(ctx: Context) {
            val errors = ctx.queryParam<Int>("number")
                .check({ it > lowerLimit && it < upperLimit }, errorKey)
                .errors()
            throw ValidationException(errors as Map<String, List<ValidationError<Any>>>)
        }
    }
    app.get("/2", altRangeController::registerNumber)
    app.exception(ValidationException::class.java) { e, ctx ->
        val error = e.errors["number"]!!.first()
        val locale = ctx.queryParam("locale")!!
        val localized = if (error.message == errorKey) {
            MessageFormat.format(msgBundle[errorKey]!![locale]!!, altRangeController.lowerLimit, altRangeController.upperLimit)
        } else {
            "Unknown error"
        }
        ctx.result(localized)
    }
    assertThat(http.getBody("/2?number=20&locale=en")).contains("The value has to larger than 5 and smaller than 10")
    assertThat(http.getBody("/2?number=20&locale=fr")).contains("La valeur doit être supérieure à 5 et inférieure à 10")

}

In alt 2 you could also communicate with the exception handler by using request attributes, by extending the ValidationException class, or by throwing your own exception.

And how do you know that the error is coming from the alt range controller? How do you know what error keys need to be formatted? How do you get the limits when they're coming from the database for a specific use case? (for example, there are hundreds of events, but the upper and lower bound is specific to THAT event). Sure, there are ways to hack around it, but they would all look very much like hacks. If other people are concerned about it I'd be happy to submit a PR for it, but if I'm the only one concerned about it, it's not really worth it.

And how do you know that the error is coming from the alt range controller? How do you know what error keys need to be formatted? How do you get the limits when they're coming from the database for a specific use case? (for example, there are hundreds of events, but the upper and lower bound is specific to THAT event). Sure, there are ways to hack around it, but they would all look very much like hacks.

I think this is the core the issue - In my mind using the Validator for carrying params also seems like a hack. You already have all of that information available in your controllers, so why is it being sent through the ValidationException? Is that better than communicating through request attributes? I agree that adding it to the Validator itself is a simple way of solving it. Maybe it's even the best way, but it does complicate the public API, which is why I'm pushing back.

If other people are concerned about it I'd be happy to submit a PR for it, but if I'm the only one concerned about it, it's not really worth it.

People might appreciate the feature when seeing it in the docs in the future even if they don't know about it now, so I wouldn't worry about being the only one concerned about it (@pkkummermo seems to agree with you, though).
Make a PR if you think it's fun or could help you at work, leave it if you don't feel like it. Either way I want you to know that I appreciate you taking the time to discuss this - I think it's been a fun working on the feature, and I think the current version is a lot better than it used to be :)

I can see the value as an additive to the already existing structure, but it also bloats the external API and makes the response more complex (as well as Javalin internals).
I've implemented the same sort of solution myself, and it gives value for those who need it, especially frontend translations as well as programmatical approaches towards the API. Most however just use the "message" in the response and ignores the rest.

I'll take a stab at adding something. I think the fundamental difference here is that you see args as some extra unrelated thing. I see the args as part of the error. The error returned from a check is not just a string, it is a string and a map/array of args. It doesn't make any more sense to me to add the "args" for an error to the request attributes than it would to add the message. The message and the args go together. If the message is stored in the validator, the args should be stored in the validator.
I think I can add it in such a way that most users of the API won't know the difference. I would still prefer that the predicate return the error rather than passing a predicate and a error separately, as it would allow for sane default errors from standardized validation checks, but I'll just keep it to Adding the args for now.

args as part of the error

For me personally I expect that as well.  "Args" are part of the error for the Jakarta Bean Validation API - JSR 380
ConstraintViolationException has Set<ConstraintViolation<?>>
https://github.com/eclipse-ee4j/beanvalidation-api/blob/master/src/main/java/jakarta/validation/ConstraintViolationException.java#L22
ConstraintViolation has "args" available via Object[] getExecutableParameters(); and Object getInvalidValue();
https://github.com/eclipse-ee4j/beanvalidation-api/blob/master/src/main/java/jakarta/validation/ConstraintViolation.java#L93
Plus String getMessageTemplate(); + Path getPropertyPath();
My thought is that the "args" are needed in order to i8 the error messages when using el/token replacement style error messages.

Thanks for your input @rbygrave (and @pkkummermo). I'll merge the PR adding args now.


scipy.io.savemat with sparse matrix with integer values.

I am using scipy 0.15.1 on Mac OSX and Octave 3.8.2.
Steps to reproduce:
from scipy import sparse as S
from scipy import io

io.savemat('bug.mat', dict(tmp=S.coo_matrix(([1], ([1], [1])))))

# Now saving almost the same matrix, but with a float64 type instead of int64.
io.savemat('works.mat', dict(tmp=S.coo_matrix(([1.0], ([1], [1])))))

Then in Ocatve:
octave:1> load('bug.mat')
error: load: reading sparse matrix data for 'tmp'
error: load: trouble reading binary file 'bug.mat'

octave:1> load('works.mat')
octave:2> tmp
tmp =

Compressed Column Sparse (rows = 2, cols = 2, nnz = 1 [25%])

  (2, 2) ->  1

Matlab 2015b too is unable to load the .mat file. This error may also extend to other formats (e.g. boolean).

scipy.io.loadmat is able to read the files back successfully, though.

This is probably a real bug.  I don't think matlab supports anything but double, complex and logical sparse matrices.

The matlab data format spec claims that the data can be "any numeric data type":
https://www.mathworks.com/help/pdf_doc/matlab/matfile_format.pdf
Apparently, not so...

I did some digging around with this.
The reason Octave and Matlab cannot read the input are different.
Octave cannot read it because of these lines: http://hg.savannah.gnu.org/hgweb/octave/file/a7770c66cb3d/libinterp/corefcn/ls-mat5.cc#l175
Those lines have been there for a rather long time and I don't know whether they have any plans on fixing it.
The output produced by io.savemat seems to be correct (conforms to the standard) but it cannot be read in Octave and produces garbage (!) values in Matlab.
The only reliable way to work around it that I have found is to only save sparse matrixes in double format instead of int or bool.


Run Docs of CI failed due to address collision

Information

Qiskit Terra version: latest
Python version: NA
Operating system: NA

What is the current behavior?
I notice two issues related to CI as follows.

#5735 fails at CI and the message is as follows. It may be due to Sphinx parallel build.

When Run Docs failed, it did not terminate immediately and seemed to wait for the 1-hour time limit. Should it terminate when it fails?

executing qiskit.pulse.Schedule.replace
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/vsts/work/1/s/.tox/docs/lib/python3.7/site-packages/ipykernel_launcher.py", line 16, in <module>
    app.launch_new_instance()
  File "/home/vsts/work/1/s/.tox/docs/lib/python3.7/site-packages/traitlets/config/application.py", line 844, in launch_instance
    app.initialize(argv)
  File "/home/vsts/work/1/s/.tox/docs/lib/python3.7/site-packages/traitlets/config/application.py", line 87, in inner
    return method(app, *args, **kwargs)
  File "/home/vsts/work/1/s/.tox/docs/lib/python3.7/site-packages/ipykernel/kernelapp.py", line 567, in initialize
    self.init_sockets()
  File "/home/vsts/work/1/s/.tox/docs/lib/python3.7/site-packages/ipykernel/kernelapp.py", line 276, in init_sockets
    self.stdin_port = self._bind_socket(self.stdin_socket, self.stdin_port)
  File "/home/vsts/work/1/s/.tox/docs/lib/python3.7/site-packages/ipykernel/kernelapp.py", line 218, in _bind_socket
    return self._try_bind_socket(s, port)
  File "/home/vsts/work/1/s/.tox/docs/lib/python3.7/site-packages/ipykernel/kernelapp.py", line 194, in _try_bind_socket
    s.bind("tcp://%s:%i" % (self.ip, port))
  File "/home/vsts/work/1/s/.tox/docs/lib/python3.7/site-packages/zmq/sugar/socket.py", line 172, in bind
    super().bind(addr)
  File "zmq/backend/cython/socket.pyx", line 540, in zmq.backend.cython.socket.Socket.bind
  File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Address already in use
...
Sphinx parallel build error:
sphinx.errors.ExtensionError: Notebook execution failed (exception: Kernel died before replying to kernel_info)

Full log: https://dev.azure.com/qiskit-ci/qiskit-terra/_build/results?buildId=24859&view=logs&j=23e88340-9b01-571b-4128-239215012d30&t=fd5b7ae3-9f70-5b67-b24e-b010b8098eb2
Steps to reproduce the problem
What is the expected behavior?
Suggested solutions

Yeah this is an occasional failure I've seen in the docs builds. My assumption is it is due to the parallel builds as well, but I haven't had time to debug it to confirm.

This is also caused by the parallel builds, it's a bug in the jupyter sphinx plugin. When the jupyter execute fails the parallel sphinx worker never reports it's status to the parent sphinx process and the parent processs sits waiting for the response from the child process forever (until we hit the 1hr job timeout). This has been a longstanding issue with jupyter execute and I've been meaning to report it upstream (but haven't found the time to create a minimal recreate to report it).

Thank you for your information. I leave this issue for the future fix.


error in README.md wrt jvb.publicIP?

In README.md, regarding different topologies and JVB configuration, "option 4" references a parameter jvb.publicIP.

I could find no reference to "jvb.publicIP" in the templates...

Actually, yes — the behavior was changed in chart version 1.3.1. I'll update the README.md tomorrow. Thank you for noticing!


⚠ ClamAV has degraded performance

In 2890aa8, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 314 ms

Resolved: ClamAV performance has improved in f1acf20.


[benchmark] Fix build failure under QNX

Fixes https://github.com/microsoft/vcpkg/issues/35510
Use C++ casts.

[X] Changes comply with the maintainer guide
[ ] SHA512s are updated for each updated download
[ ] The "supports" clause reflects platforms that may be fixed by this new version
[ ] Any fixed CI baseline entries are removed from that file.
[ ] Any patches that are no longer applied are deleted from the port's directory.
[X] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[X] Only one version is added to each modified port's versions file.

Usage test pass with following triplets:
x86-windows
x64-windows

I think this needs to be submitted upstream, and I would like to see confirmation from @Arech that it actually fixes something because the problem will not repro on anything we currently have the capacity to test.

Well, with the exception of adding -Werror=old-style-cast it's the same patch, that I have suggested, so it should work...
But I'll test it tomorrow anyway and will get back to you with the results. It's 23:35 here, good night everyone...

Track the upstream issue 1707.

I can confirm that the PR indeed compiles and works on QNX as expected
In the manifest:
"default-registry": {
  "kind": "git",
  "repository": "https://github.com/jimwang118/vcpkg",
  "reference": "fixbenchmark",
  "baseline": "0d6278ea26eecd1ebd3cbb2d183d3eb0cee6cf5c"
},

benchmarks$ . $QNXSDP/qnx710/qnxsdp-env.sh
...
benchmarks$ rm -rf ./build_qnx; cmake -B ./build_qnx -G Ninja -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=aarch64-qnx.cmake -DCMAKE_BUILD_TYPE=Release && cmake --build ./build_qnx -j 8
...
-- Running vcpkg install
warning: Embedding `vcpkg-configuration` in a manifest file is an EXPERIMENTAL feature.
Fetching registry information from https://github.com/jimwang118/vcpkg (fixbenchmark)...
...
The following packages will be built:
<EMAIL_ADDRESS>-- ...
...
Installing 85/165<EMAIL_ADDRESS>Building<EMAIL_ADDRESS>-- [OVERLAY] Loading triplet configuration from: .../arm64-qnx.cmake
...
-- Applying patch fix_qnx.patch
...
-- Configuring arm64-qnx
-- Building arm64-qnx-dbg
-- Building arm64-qnx-rel
...

I run the binary on a device with QNX and it worked as expected.

The upstream fix PR 1739 has been merged.


Add a very basic read only file API route

This PR adds a very basic file info and file list route to the API.
Allows pagination of file list and viewing file info.
We ignore permissions as the current API keys are not based on a per user situation.
Its currently under the system scope, may add to a separate scope.

Thanks, this is great – I'm looking forward to testing it out with the new concrete5 REST API Client:
github.com/concrete5/concrete5_api_client.
This will probably have to wait until 8.6 but I'm excited to get it into the develop branch soon.
FYI: with a couple tweaks in another pull request, and the authorization code flow in the REST API client you can indeed run the API methods as an authenticated user. We have the authorization code OAuth2 flow working, then we'll circle back and make sure the REST API client also works with the user credentials and client credentials flows.


Updater fails to detect the availability of a new update when Orbot is in VPN-mode

GrapheneOS updater fails to detect the availability of a new update when running Orbot in full-device VPN-mode. This has happened several times before, tested on sargo and bonito on stable. Once Orbot and the related VPN settings are deactivated, the update process starts immediately.
This is in contrast to the information on the website, where it says "The update protocol [...] works well over a VPN / Tor".

Do you have it set to work on any network? Orbot likely has itself marked as a metered network since it can use mobile data.

Yes, "permitted networks" is set to "any". Channel is "stable", and the battery warning option is obviously deactivated.
My gut feeling is that is has something to do with "permitted networks" though, perhaps it somehow clashes with Orbot specifically.

If that's set to any, then I don't see how it would prevent this from working. The only issue that I could see is that if the connectivity checks are detecting the network as not working.

Are you sure the exit node as not blocking the connections?

You can use adb logcat to see output from Updater. Try using Orbot again and checking for updates. If it's successfully connecting then I don't see an issue. I don't see any way of addressing this if it simply wasn't working for you one time. Exit nodes are often really sketchy.

As I said, the issue persisted over several months, across multiple devices. That would rule out broken exit nodes. I'm quite confident it has actually never worked, I had to disable full-device VPN-mode in Orbot and grant the updater clearnet access.
I have a spare 3a, will set it up and run logcat. Will post the results here.

I don't really understand how it could fail to work for you.

@alex-resist Any update on this?

I think this issue can be closed. I've tried to reproduce it over the last couple of releases. It worked right away on sargo through Orbot. On my personal bonito, it worked most of the time. Sometimes there was a latency of several seconds until a new release was detected, and with 2<IP_ADDRESS> it didn't work for hours, although there clearly was a new stable release. One day later or when switching to beta, it eventually worked.
I conclude that this is probably not an issue with GrapheneOS, but with Orbot connectivity. Still, it is not always reliable, and there is a chance that people running GrapheneOS and routing all their traffic through Orbot will not receive updates in time. So I'm closing this with a caveat.


Mccalluc/overlays again

Would we ever worry about having too many examples, or is it fine to add this?
Are there any particular standards for the examples? At some point I feel like having some documentation in there about what makes it interesting / useful could be good.
Chromosome2DAnnotation feels anomalous: My sense was that HiGlass generally uses absolute coordinates, but this seems to be an exception.
I looked at Annotation2DTrack: It seems like there should be something with an interface closer to the 1DTrack, but there aren't any examples of it in use.
I would like to use promises the right way, rather than just chaining all these callbacks.
Still need to add the interactivity.
I could get more realistic data for the 2d.

One build just stalled:
npm WARN deprecated<EMAIL_ADDRESS>Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN deprecated<EMAIL_ADDRESS>Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.
Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received
The build has been terminated

Would we ever worry about having too many examples, or is it fine to add this?

One can never have too many examples!

Are there any particular standards for the examples? At some point I feel like having some documentation in there about what makes it interesting / useful could be good.

Not currently. You're welcome to create some though. At some point it would be nice to combine these with the ones here: http://test2.higlass.io/examples. Those are currently defined by this gist: https://gist.github.com/pkerpedjiev/104f6c37fbfd0d7d41c73a06010a3b7e All of those examples link to viewconfs and can thus be opened by higlass.io/app. The ones in this repository can be more complex because they may include API calls or animations or event handlers so I'm not sure if it's possible to combine the two.
At the very least, it would be nice to have an index listing the available examples, if that doesn't exist yet.

Chromosome2DAnnotation feels anomalous: My sense was that HiGlass generally uses absolute coordinates, but this seems to be an exception.

Agreed. That's what that one Slack thread was about. It's used by HiPiler though. With that said, it would be convenient for the user to list regions using chromosome coordinates but I feel like that should be built on top of a generic absolute coordinate implementation and take a set of chromosome sizes as in its viewconf definition.
Your other comments seemed more like remarks for future notice. Let me know if you there's anything concrete there that I can help with.

Should I merge this PR or was there more that you wanted to do with it?

If this much looks good to you, I'll merge it, and continue. Thanks!


Update yii.activeForm.js

simplify
$('#contact-form').data('yiiActiveForm').submitting = true;
$('#contact-form').yiiActiveForm('validate');

Merged. Thanks!

@samdark What if I want to validate form without submitting, is it currently impossible?

With this method it's possible. Try it.

@samdark When I call yiiActiveForm('validate') undefined is returned and nothing happens. Also afterValidate is not triggered.

Yes. That's 2.0.9 behavior and this pull request changes it.

@samdark You don't understand me. I am talking about this issue #12374

Well, that's different issue.


Prefixed Redis Connections not working as expected for scan command

Laravel Version: 5.6.22
PHP Version: 7.1.17
Database Driver & Version: 4.0.2

Description:
In both PhpRedis and Predis connections when running a scan command, the prefix doesn't appear to function as expected. In a non-prefixed predis connection, scanning with a match of test on a prefilled redis database like:
test
test1
test2

I get the expected single result of test.
When running that same test will prefixed entries in the database like:
pre:test
pre:test1
pre:test2

and the same match condition, I get no results.
I would assume the expectation would be that any command run on a prefixed connection would only operate on that prefix and that the prefix usage would basically just be invisible like:
// Both prefixed and non-prefixed connections
$redis->set('key1', 'value');
$result = $redis->scan('key*');
// $result = ['key1'];

This is even backed up by the Predis client options (https://github.com/nrk/predis/wiki/Client-Options)

Specifies a string used to automatically prefix all the keys contained in a command issued to Redis.)

Steps To Reproduce:

Create 2 connections, one prefixed and one not.
Before each run of the scan command, prefill the redis database like shown above, where the prefix is never manually added other than in the connection options.
Note that a scan command does not return the same results and scan calls to the prefixed connection yields no results.

@ragingdave gonna close this due to inactivity. Feel free to reply if this is still an issue.

I just ran into this same issue. @driesvints could you reopen this please?
Reproduction steps using php artisan tinker and the phpredis driver:
>>> RedisFacade::set('example:123', '1')
=> true
>>> RedisFacade::scan('', 'example:*')
=> []

If you open redis-cli in another terminal and run MONITOR you can see the following commands being executed:
1582048092.501213 [0 <IP_ADDRESS>:57806] "SET" "laravel_database_example:123" "1"
1582048101.392400 [0 <IP_ADDRESS>:57806] "SCAN" "0" "MATCH" "example:*"

The same issue occurs when using the Redis class directly so I think we need to implement a similar solution to the ZADD command.

@matt-allan does anything from the attempted PR help? https://github.com/laravel/framework/pull/24299

@driesvints thanks for reopening this. There have been a lot of changes since #24299 in both the connection class and the tests that should make fixing this easier. I will try and put a PR together today or early next week.

There's also a PhpRedis issue for this at https://github.com/phpredis/phpredis/issues/548. Might be better to fix it there instead of creating a workaround that breaks as soon as PhpRedis starts respecting the prefix.

See https://github.com/phpredis/phpredis/issues/548#issuecomment-589533853.

That comment would seem to suggest that we would then need versioned phpredis connections to account for that difference?

It sounds like it's going to be an optional feature you have to specifically opt-in to (for BC reasons), so we don't have to take it into account. Although it might make sense to add a version check and delegate prefix handing to PhpRedis in the future.

Closing this as this seems like a PhpRedis issue rather than a Laravel issue.

FYI PhpRedis has merged support for a new SCAN_PREFIX option which will automatically prepend the prefix to SCAN commands. Once a version with this feature is released, Laravel could add (optional) support for it.


Update how-to-export-certificate.md

Update author to Key Vault content manager

Learn Build status updates of commit d7325e3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/key-vault/certificates/how-to-export-certificate.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


fantasticon does not find any svg's

I am completely new to fantasticon. I just installed it on Windows 11, and ran the following command:
fantasticon svg -o output
This results in the message:
No SVGs found in ./svg
If I look in the directory svg (which is a subdirectory of the current directory, where I am running the command from), there are 87 SVG files. All names end with .svg (lower case).
Why doesn't fantasticon find them?

Same problem, but in Windows 10. Previously works fine, but recent try to rebuild, raises the error.

Same problem here. Any provisional solutions?

I have the same problem.

Same problem on my side,
It seems to only occuired on Windows 10 devices =/
(tested on Debian and MacOs and work fine)

我找到了问题，是源码的bug，其实是glob导入那被promise格式化后读取不到文件的，它的获取参数失败了。改回callback就正常了。

Same issue. Any solution?

Somebody posted a solution somewhere else. Here it is for you guys:
Paste this into you package.json. It overrides the dependency from fantasticon to glob so that it uses an older (or newer) version:
"overrides": {
    "fantasticon": {
      "glob": "7.2.0"
    }
  },

Afterwards run npm install and fantasticon should work again as expected

For yarn:
"resolutions": {
    "fantasticon/glob": "7.2.0"
}

```json
"overrides": {
    "fantasticon": {
      "glob": "7.2.0"
    }
  },

this is not working for me...

Just installed 3.0.0 and 2.0.0 and the problem exists on both, unusable.


Not working for iOS version 13

UnregisterAllAsync and RegisterNativeAsync these methods are not working  on devices with iOS version 13.

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

ID: 45afd17d-e909-ccd9-01c3-f746bdf406a2
Version Independent ID: d2c8cc69-5a37-4c73-d48b-9c058cf4595e
Content: Send push notifications to Xamarin using Azure Notification Hubs
Content Source: articles/notification-hubs/xamarin-notification-hubs-ios-push-notification-apns-get-started.md
Service: notification-hubs
GitHub Login: @sethmanheim
Microsoft Alias: sethm

Hi @jayeshshingote92, Thanks for the feedback! We are currently investigating and will update you shortly.

@jayeshshingote92 are you seeing any specific error messages when using those two methods?

This documentation was supposed to be updated back in December 2019 for something that was released May 2019.  Yikes!  Not a pleasant upgrade experience.
UnregisterAllAsync crashes iOS even after updating AzureNotificationHub Nuget to 2.04
Use this call instead of the old callback format:
await AzureNotificationHub.HUB.UnregisterAllAsync(token);
Same with the hub.RegisterAsync call:
await hub.RegisterNativeAsync(token, tags).ConfigureAwait(false);
Also - review how you are obtaining your token.  It may not be formatted correctly.  Apple changed this format.  Look at the Description.Debug property if you are working with token in your own way.
https://alexdunn.org/2020/02/18/xamarin-tip-ios-push-notification-device-token-extraction-in-ios-13/

Upon further review we feel your feedback would be best received by the doc author to determine if an update to the current doc is necessary, or to create a new doc if they align with the feedback.

@Grace-MacJones  I cannot see any error in application output while debugging .
The debugger directly get came out of the Hub.UnregisterAll  function. error callbacks are not executing. Though i have put the all the code inside Hub.UnregisterAll function inside try-catch block. even it is not throwing any exception. Except iOS 13 for rest of iOS this fucntion executing properly.

@SteveFarmerJr, i have tried to implement your suggested solution. still facing the same issue.
I am using Xamarin.Azure.NotificationHubs.iOS package with version 2.0.4.

From your comments to @Grace-MacJones, It sounds like you're still using the callback code to trap your errors instead of  await hub.UnregisterAllAsync(token).  How exactly are you calling the Unregister/Register methods?

Can you please publish an updated version of "RegisteredForRemoteNotifications" method to address callback issue either here in the comments or update the document? Thanks.

@jayeshshingote92 Thank you for the feedback and sorry for the delay. Can you please clarify what the documentation issue is here? I do not see calls to UnregisterAllAsync and RegisterNativeAsync in this article. Thank you!

@jayeshshingote92 We have made some updates to this article but if this is still an issue for you, please open a new GitHub issue. Thank you! #please-close


Tooltip prevent Remove button to be clicked

When I reached the file limit - the tooltip with the error message is displayed.
The problem is that its positioning prevent the remove button to be clicked.

A workaround was to modify the top position of the dz-error-message class:
.dropzone .dz-preview .dz-error-message {
  top: 80px!important;
}

Only then I am able to click on the remove button:

It happened only to me?
What do you think about changing it in the repository?

@FrancescoMussi Current version has this issue. Version 3 of this library is almost completed and this issue is addressed and resolved there. Stay tuned or see PR https://github.com/rowanwins/vue-dropzone/pull/205 for release of major updated version.

Great, thanks!


Audio Renderer Error: Please Restart Your Computer

When using DWB or Hub on a fresh balenaDash install, the device comes online, I set a LAUNCH_URL to a YouTube video, and the kiosk opens up to the YouTube page as it should...however, the video does not play, and instead there is an error in the window, that says: "Audio Renderer Error: Please Restart Your Computer"
This is on a Pi 4.  Has anyone seen this before?
Of note, I manually pushed an old v0.10.2 with a simple git clone -b v0.10.2 https://github.com/balenalabs/balena-dash/balena-dash.git, and it worked fine.

Same hardware, same problem. I'm guessing this is actually a problem with Chromium, but it'd be nice to add a workaround, perhaps as simple as an AUDIO_DISABLE flag.

This issue has been fixed by removing the ALSA bridge from the V1 version of the browser block. This isn't an issue on the latest browser block (e.g. V2) however balenaDash is currently pinned to V1 pending further work.
Users with this issue, should redeploy their balenaDash app, and it will resolve.