Document collectData()

Hi!
I'm struggling with implementing a server. I started out with keep-alive example but for some reason the json body received always appears to be 0 bytes long (it is in fact not, I tested with other non-qhttp servers (php and netcat) and they receive the 84 bytes of json data just fine).
I think the bug in my software is caused by my lack of understasnding of the collectData() call. What is the integer parameter it accepts? Can I omit the call to collectData() and still get request body? What are other possible causes of receiving empty body in request? How should I go about debugging this?
Thanks!
PS: Big fan of your work!

OK, so I found the documentation for it, and it was great :) But really hard to find being on the abstract class for server and all. Also I found a bug:
void            collectData(int atMost) {
icollectCapacity = atMost;
icollectedData.clear();
icollectedData.reserve(atMost);
}
In declaration it is stated taht atMost can be set to -1 to mean "unlimited" however this generates sigsegv crash because reserve(-1) is not valid.

@mrdeveloperdude  sorry to be so late!
thank you for reporting the collectData() bug, gonna fix it asap.

Handling of reserve(-1) fixes the sigsegv crashes but POST body still isn't collected.
Also a fan here, just wanted to pitch in to point out there are others waiting for this bugfix.
Thanks for this awesome code.

Same here! What Knobtviker says...

Well, it is possible to connect to the signal QHttpRequest::data(QByteArray), which is emitted when the body has been read. But I wanted a signal containing the (completely parsed) request and the response, so I added a new signal QHttpConnection::completeRequest, emitted in QHttpConnectionPrivate::messageComplete. Here is the patch:
Index: qhttpserverconnection.cpp
===================================================================
--- qhttpserverconnection.cpp	(revision 33224)
+++ qhttpserverconnection.cpp	(working copy)
@@ -218,6 +218,7 @@
      // request is ready to be dispatched
     ilastRequest->d_func()->isuccessful = true;
     ilastRequest->d_func()->ireadState  = QHttpRequestPrivate::EComplete;
+    emit q_ptr->completeRequest(ilastRequest, ilastResponse);
     return 0;
 }

Index: qhttpserverconnection.hpp
===================================================================
--- qhttpserverconnection.hpp	(revision 33224)
+++ qhttpserverconnection.hpp	(working copy)
@@ -63,6 +63,12 @@
      */
     void            newRequest(QHttpRequest* req, QHttpResponse* res);

+    /** emitted when a HTTP request is completely read.
+    * @param req incoming request by the client.
+    * @param res outgoing response to the client.
+    */
+    void            completeRequest(QHttpRequest* req, QHttpResponse* res);
+
     /** emitted when the tcp/local socket, disconnects. */
     void            disconnected();

Currently, I connect to QHttpServer::newRequest, and in the handler I call request->collectData(65536) and then connect to QHttpConnection::completeRequest for the actual handling.

Thanks @hoensr after I patched it in my implementation, I was able to gather POST body data.
Original issue with collectData() is still present, just saying for records sake.

I'm trying to refactor the qhttp implementation in my free time (if i could find any) and fixing this issue is on my set list.
thanks @hoensr and others, i will be happy if you dudes bring up more suggestions.

@mrdeveloperdude  @hoensr @knobtviker
I made some changes to qhttp without breaking any API.
please check the dev branch and new example/helloworld/main.cpp to see how it's working.
as for POST i played with curl (please have a look to example/helloworld/README.md) and was OK.
it would be great if you can find some time and test this branch.

the new branch requires c++14 as minimum.

only tested by clang / OS X and gcc5 / ubuntu

Hi all,
currently i'm using the dev branch without any patch and it's working fine using onEnd lambda!
I'm uploading up to 10MB in my tests without troubles, just to inform you.
Maybe i should open a new bug but i'm now in trouble still working on this topic (form data upload) since the headers of a request appear to be case lowered and this is making impossibile to accept a form-data request since in some cases (as chrome does but not Firefox) the data boundary pattern is given with both lower and uppercase letters making impossible to decode correctly the request (since the value i'm looking for it's different from what i can read into the body request!).
Imho Chrome is absolutely right since the pattern should be any acceptable combinations of letters/numbers that is not present in any part of the binary data the browser will send, so limiting the browser to lower case combinations for the boundary is wrong, as i think it's strange to have to deal all the time with altered headers.
Firefox seems to work fine just because it's sending just numbers... no effect on it!
Is there a way to tell QHttp to let the headers as they are? (that should help even with session-id and any other cookie, for example).
Thanks

@gianks
glad to hear that.
and for http header please have a look at: HTTP/1.1 - sec 4.2
as defined by HTTP standards:

Each header field consists of a name followed by a colon (":") and the field value. Field names are case-insensitive. ...

qhttp converts header names into lower case, just for faster and easier search and validation, so each of Content-Length, content-length, ... produce the same result, and as far as I know it does not violate any standard.
by the way I'm interested to know why some tools rely on case-sensitive HTTP header.

Hi and thanks for tour quick reply!
What i was remarking is not about field names but about field values! Both are lowered and that's not fitting the standard!

yupp, that's right. but the header values are not required to be case sensitive by standard, it's really confusing, for example the value of Connection must be case-insensitive!! for instance Keep-Alive cause problems and should be altered into keep-alive.
but in general it's good idea to update qhttp from altering values with some exceptions as connection, host and ...

I agree 100%. Just when surely well known headers should be lowered even in values otherwise provided as they are.
If i can i'll play with it tomorrow... Let us know if you are planning to do it on a schedule.
Thanks
Gianluca

yes i will. don't have any schedule for this issue, try to update asap.

Hi, thanks for all the good work.
I'm also facing some troubles with collectData. The code I'm using is adapted from version-2.1 with the remarks from this thread. I can't use the latest branch as it requires c++14 as minimum, which I can't use in my project.
It seems that there is a timing issue when the data is read. Let me illustrate that with an example. Let's say my server will simply answer a PUT request with a 200 code if it can read the body, and will throw a 400 error code if it can't. The result is: sometimes it works, sometimes it doesn't...
While sniffing the network during an unsuccessful attempt, the following packets were exchanged (in that order):

PUT headers
400 answer
PUT body

The server gave its 400 answer before the body arrived. That shows that the server doesn't wait until the message is complete to answer. The only workaround I could find to make it sort of work temporarily is to delay a little bit the parsing (usleep in HttpParser constructor in qhttpbase...). But that's not viable.
Does anyone have a patch/idea to fix this?

Hi 7hibault, I have switched to the dev branch although I use VS2013 without complete c++14 support. But there are only a few places which use c++14 features and I had to change. See this comment. Maybe that would help with your problem?


Import of equipment files fails with blank damage field

I have encountered an issue in GGA v 0.17.4 on both v11 and v12, on Forge and in a local server, with no modules active, where - as I read the error message - an attempt to read the blank damage field in the Smoke Grenade item in the Basic Set causes the process to fail.

I can't find a "Smoke Grenade" in the Basic Set library of GCS.   Can you upload your character .gcs file?

Ah, sorry, in the Basic Set it's the "Hand Grenade, Stun" item.
I've been tinkering further, and a recreation of the item has solved it, but only AFAICT, because there is now something in the damage field, namely the damage type "cr" (no +xd notation, though, just the "cr" damage type). When the item looks like this, the process runs as intended. But there seems to be something about an emty damage field that the system doesn't like. This has been seen on v11 (GGA 0.16.10) also.

I have a fix for this.


return sign from logabspfaffian

As I suggested in #71, logabspfaffian should really work similarly to logabsdet: it should return a tuple of log(abs(pfaffian(A))) and sign(pfaffian(A)).
This means that you need to multiply together the sign of the terms, as well as adding up the logs of the absolute values.
See, for example, how logabsdet is implemented for Triangular or Diagonal matrices.

I updated the function, I will push it soon

(In general, try to link the issue number from the commit or the PR, e.g. write closes #73 in the commit message.   See https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)


About model training

Hi,your code is awesome,but i have one problem that I can't find  answer in the paper.If the model not only training the parameters of the conv and fc,but also the embedding?or just training the conv and fc.Thanks you again.

No the embedding vectors are also part of the learning process


Where is mcloader defined?

main.py  >>> line 125
https://github.com/Omid-Nejati/MedViT/blob/main/CustomDataset/main.py

main.py >>> line 125
https://github.com/Omid-Nejati/MedViT/blob/main/CustomDataset/main.py

Certainly, I understand the definition of this parameter. What I mean is that you have used from mcloader import ClassificationDataset here, but I haven't found any definition related to this part in MedVit. Did you implement the mcloader yourself?


reworking cell and markdown relationship in parser

Maybe this could be a solution to #30 - it does a lot of manual re-arranging such that I'd bet I'm breaking something though...
~This sort of works, but it also then throws a bunch of warnings for pages, because there is no top-level "title" for the page because they're all wrapped in CellNode blocks~
Updated PR
The updated version of this PR takes a different approach, that I think is better. Rather than forcing everything to be in a top-level cell div, this PR now parses the notebook more "naturally". It assumes that code blocks are not necessarily in totally different containers, but instead will flow with the rest of the AST as if they were "literal" blocks.
This means that the AST of the document now looks much more like a regular AST from parsing a text file. We still use the CellNode containers to wrap the code cells in <div> elements for tagging, and the "hide input" behavior is still there.
For markdown cells, I added a dependency on sphinx-togglebutton and added documentation for how they can use directives to make toggle-able markdown, e.g., with:
```{note}
:class: toggle
My note content
```

We might want to change up that API in https://github.com/executablebookproject/sphinx-togglebutton but that's where it is currently.
I also added a bit of logic that will check if hide_input is present in a markdown cell and, if so, will also add a container to wrap in a div for the toggle button to find.
@chrisjsewell what do you think? does this make more sense?
Here's how it looks: https://48-241268229-gh.circle-artifacts.com/0/html/notebooks.html

The latest push implements some of what we want, I think. It adds a custom HTML5Translator class that adds <div> elements before and after comments with specific tags.
Some problems w/ this PR

For some reason, the second </div> tag is closing the <body> element of the page. I wonder if this is actually uncovering a bug in the HTML of the parser or theme somewhere...

A potential alternative to this PR
Another option we could explore is to only wrap markdown cells in divs if they have tags. Then we could use the same "container" approach used originally in this repo, with two caveats

the first markdown cell couldn't be used w/ containers (because it'd be used to define the page title etc)
the CSS and JS rules of the page would have two different kinds of content to worry about, "things in cell divs", and "other things". However, I believe that Sphinx will always output a <div class="section" so that might be usable as a selector as well.

OK I'm gonna merge this because I'm pretty sure that @chrisjsewell would agree w/ the changes :-)

Without any tests, who knows if it works❓❗ 😆


Add new criteria for API search

Markus wrote: "Christian Ohmann (and Sergey Goryanin) contacted me in September to discuss the technical implementation for their MDR + CESSDA search demo. They wanted to directly use SearchAPI in their search but they needed to search by Sampling Procedure, Mode of Collection and/or Time Method for the mappings they wanted.
I think they ended up harvesting OAI-PMH and setting up their own copy of the index after I showed them where to find the Elasticsearch settings and mappings used in CDC since they were in a rush to get the demo done before the project ended at the end of September. Demo won't be expanded upon unless they get more funding."

At present, the API search criteria mirror those available via the CDC UI. Logically, any new criteria should be added to both, not just the API. Therefore a discussion is needed in the CDC User Group as to whether or not Sampling Procedure, Mode of Collection and/or Time Method should be added to the existing set of filters in the UI, and if so, what the priority is.

This was discussed in the User Group June meeting. This has been up for discussion previously and the conclusion then (from the CDC Upgrade report) was that few (around 50% of) SPs provide this information and those that do provide information in these fields do not always use a vocabulary thus making filtering difficult.
SO will have a look at the CDC Upgrade report and investigate if any more SPs provide information in these fields now.


#6791 Improve type checking around FAISS

Fixes #6791
Small PR to raise a better error when a dataset is not embedded properly.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

CI failures are unrelated.


sendToControlNet - german

Haha, I was thinking that you could include it in the German translation like this because you never know when someone might create translations in other languages like Portuguese, Spanish, French, etc. This way, each translation can be done at their own speed, and translators can easily see which translations they might have missed. ^^'
inside other translation's:
//! sendToControlNet: 'Send to ControlNet',

Okay, let's stick with this for now. If the project really scales up to this level, I'll try using TypeScript's type checking or write a script to handle this issue.


use upstream k8s version lib

Summary
Use the upsteam k8s version lib. See https://github.com/kubernetes-sigs/release-utils/pull/31 https://github.com/kubernetes-sigs/release-utils/pull/29 https://github.com/kubernetes-sigs/release-utils/pull/28
Note: there is a change around the pproc flag, if the flag is provided, the server will host the pproc endpoints. This use to be guarded by the lack of ldflags setting gitVersion. (though, would have had a bug if someone installed the server via go install or go get)
Ticket Link
See https://github.com/kubernetes-sigs/release-utils/issues/23
Release Note
pproc flag use to be ignored for production builds, no longer ignored.

What's the advantage of using the upstream version , is the current implementation lacking somehow?

Deleting code and using a common lib to do the same thing. The main issue is this code is duplicated around the cloud native landscape about 300 times so we are working to centralize it. See also https://github.com/sigstore/cosign/pull/1413


Idea collection for the next OpenMS regenerate/merge

This issue just contains some ideas that should be incorporated in the next openms release:

[ ] more descriptive data set names for tools with multiple outputs
[ ] add test from openms
[ ] add MetaProSIP improvements (mainly extra images as collection, see https://github.com/galaxyproteomics/tools-galaxyp/pull/263 and missing R dependencies https://github.com/galaxyproteomics/tools-galaxyp/issues/262)
[ ] add -threads parameter which seems to be supported by many (if not most/all) tools
[ ] check that ~/.OpenMS/OpenMS.ini is not used

For point 1: Currently all data sets are names ${tool.name} on ${on_string}. This is confusing and should be  ${tool.name} on ${on_string}: ${FORMAT} -- or as @bgruening prefers a more content associated description instead of FORMAT
For point 2: Based on the tests in:  https://github.com/OpenMS/OpenMS/blob/8fa312ff8d6d5e97aa778283e9ec0d95750d6c5e/src/tests/topp/CMakeLists.txt and the data in: https://github.com/OpenMS/OpenMS/tree/develop/src/tests/topp it might be possible to auto generate test for the OpenMS suite... maybe for the next release.
For point 5: Some OpenMS tools use ~/.OpenMS/OpenMS.ini. In a galaxy environment that runs jobs as real user this might have undesired side effects. I always have the following output: File '/home/songalax/.OpenMS/OpenMS.ini' is deprecated. Updating missing/wrong entries in '/home/songalax/.OpenMS/OpenMS.ini' with defaults! OpenMS tools seem to have two options that could help:
  -ini <file>        Use the given TOPP INI file
  -write_ini <file>  Writes the default configuration file

Closed via https://github.com/galaxyproteomics/tools-galaxyp/issues/266

add -threads parameter which seems to be supported by many (if not most/all) tools

I came here looking to post on this exact issue. I have started my own (currently short) list of tools which would benefit from adding -threads. I haven't done extensive testing but only checked those tools I'm currently using in workflows. Tools which utilize threading include:

MSGFPlusAdapter (already patched to use -threads)
CometAdapter
FeatureFinderCentroided
PeptideIndexer
(probably many others)

Tools which don't seem to utilize threading include:

IDPosteriorErrorProbability
FidoAdapter
FalseDiscoveryRate
IDFilter
IDMapper
QCCalculator
(probably many others)

I don't know if there is any way to make these determinations automatically for the rest of the TOPP toolset. I just ran the tools individually and checked the maximum CPU usage. Would it make sense to start a list to track the tools utilizing threading? Is there any point in submitting PRs to add threading for these, or will they just be lost when the wrappers are auto-generated next time?

@jvolkening please PR them. If we update the wrappers we usually carefully check the diff between old and new to carry over the changes.
If anyone has an intern that can work on the script to autgenerate the wrappers let me know I have a few idea, how we can substantially improve the wrappers and make them more robust, but I do not have time for this.
The OpenMS community is not so keen of Galaxy, so we need to do this I guess at some point.


VM Conversion doesnt properly handle distinct types.

I'm trying to make something similar to AutoHotkey by combining wAuto and nimscripter but I can't export the functions
import nimscripter
import wAuto

proc sendToActiveWindow(
  text: string,
  raw = false,
  window = InvalidWindow,
  attach = false,
  restoreCapslock = false
) =
  send(text, raw, window, attach, restoreCapslock)

exportTo(
  autonim,
  sendToActiveWindow,
)

const
  scriptProcs = implNimScriptModule(autonim)
  ourScript = NimScriptPath"./example/mynimscript.nims"

let intr = loadScript(ourScript, scriptProcs)

error:
/home/---/projects/autonim/src/main.nim(27, 36) template/generic instantiation of `implNimscriptModule` from here
/home/---/.nimble/pkgs/nimscripter-1.0.14/nimscripter/expose.nim(94, 26) template/generic instantiation of `fromVm` from here
/home/---/.nimble/pkgs/nimscripter-1.0.14/nimscripter/vmconversion.nim(91, 73) Error: type mismatch: got <typedesc[HWND]>
but expected one of:
proc fromVm(t: typedesc[SomeOrdinal or char]; node: PNode): t:type
  first type mismatch at position: 2
  missing parameter: node
10 other mismatching symbols have been suppressed; compile with --showAllMismatches:on to see them

What is the procedure type of autonim and it's parameters? I do not know what the issue would be without that information.

Isn't autonim a moduleName?
macro exportTo*(moduleName: untyped, procDefs: varargs[untyped]): untyped =
  ## Takes a module name and symbols, adding them to the proper table internally.
  result = newStmtList()
  var moduleName = $moduleName
  for pDef in procDefs:
    result.add newCall("addToCache", pdef, newLit(modulename))

It is i forgot how my API worked. :smile:
It errors about HWND so i guess it's the invalid window, you will probably need a better wrapping.

amazing I just changed the default parameter to primitive type and it worked!
proc sendToActiveWindow(
  text: string,
  raw = false,
  window = 0,
  attach = false,
  restoreCapslock = false
) =
  send(text, raw, Window window, attach, restoreCapslock)

Also I guess I found a minimal example of this issue?
type DistInt = distinct int

proc yay(a: DistInt) = discard

exportTo(
  moduleName,
  yay,
)

const scriptProcs = implNimScriptModule(moduleName)

Yea this is odd since I do have procedures for T: distinct
https://github.com/beef331/nimscripter/blob/master/src/nimscripter/vmconversion.nim#L40

Oh it looks like i forgot to pass the argument, so yea I guess fix coming soon.


Replacing the HTTP server with WKURLSchemeHandler?

Using an HTTP server has many downsides:

error-prone
more complicated to setup
third-party dependencies
unsafe (any other app on the device can access the publication resources)

WKURLSchemeHandler could be a solution to serve EPUB resources directly. Looking at the API, it seems promising even for byte range requests.
However, it is available only on iOS 11+. So we still need to support HTTP servers as an alternative until we drop support for iOS 10.
Related issue for Kotlin: https://github.com/readium/r2-testapp-kotlin/issues/297

https://github.com/readium/r2-navigator-swift/pull/160 contains a first stab at this using WKURLSchemeHandler. Unfortunately, there are some blocking issues, including the lack of support of byte range requests for media resources.
It seems to have been addressed in WKWebView recently: https://commits.webkit.org/237270@main But since WKWebView is upgraded with each new iOS version, we won't be able to use this any time soon.

Note that the Range HTTP header seems to be filled in on iOS 15.0+.


Fix the generated guard conditions.

Cannot check FOO.BAR when FOO is nil.
Cannot and FOO FOO.BAR because and is not short-circuited.
Matched tests (changed column indices in the error messages)
Ref https://trello.com/c/7xGqgWkI/671-3-make-sizing-section-of-valuesyaml-uniform

Thinking about it, the test at line 191 ought to have caught this. And I now wonder why it did not.


[Preview 4] Inconsistent Cursor Behavior with GridSplitter in WinUI3 Desktop

Describe the bug
In WinUI3 Preview4, the cursor does not change to the Resize cursor icon on the hover over before adjusting the GridSplitter as it does in UWP.
Steps to reproduce the bug

Clone the WinUI3 Preview 4 Problems GridSplitter repository.
Go to the GridSplitterWinUIPreview4 folder.
Open the GridSplitterWinUIPreview4 solution in Visual Studio 2019 Preview.
Build and run with Debug x64.
Hover over one of the two GridSplitters (Horizontal or Vertical). You should see the cursor icon does not change to the Resize icon.

Expected behavior
We expect the cursor icon to change to the Resize icon when hovering over the GridSplitter.
Screenshots

Screenshot#1 - Expected Behavior

Screenshot#2 - Current Behavior
Version Info
NuGet package version:
[Microsoft.Toolkit.Uwp.UI.Controls 8.0.0-preview4]
[Microsoft.WinUI 3.0.0-preview4.210210.4]
Targeting:
Target: Universal Windows
Target version: Windows 10, version 1809 (10.0; Build 17763)
Min version: Windows 10, version 1803 (10.0; Build 17134)
Windows app type:

UWP
Win32

Yes

Windows 10 version
Saw the problem?

Insider Build (xxxxx)

May 2020 Update (19041)

November 2019 Update (18363)

May 2019 Update (18362)

October 2018 Update (17763)
Yes

April 2018 Update (17134)

Fall Creators Update (16299)

Creators Update (15063)

Device form factor
Saw the problem?

Desktop
Yes

Xbox

Surface Hub

IoT

Additional context

@michael-hawker FYI, Does GridSplitter use CoreWindow? (API's with CurrentView)

@StephenLPeters Yes, this is because it was trying to modify the PointerCursor with a CoreCursor. We haven't properly updated this code yet in the Toolkit.
We haven't evaluated if we have a workaround or a proper fix yet, as the protected Cursor property on UIElement hasn't been exposed as a public property on FrameworkElement yet (like it was in WPF). We may look at a workaround for 0.5 as we prepare for that release of the Toolkit on top of that in March. Here's the internal issue tracking the Cursor property being exposed, but I'm not sure when it's scheduled to be implemented.
FYI @azchohfi I believe you're aware of this issue, but we don't have an issue tracking this in our repo currently for GridSplitter specifically, eh? I'll add it to our known issues list at https://github.com/windows-toolkit/WindowsCommunityToolkit/issues/3295

@michael-hawker Yeah, that should be enough., but we need to figure out how to fix this. And yes, I was aware of the issue.

Based on how GridSplitter is currently implemented, it has issues with how the Hover is implemented since we don't have access to set the Cursor property. There's an issue tracking adding Cursor to FrameworkElement like it was in WPF. @codendone when is that currently scheduled to be exposed?
We may refactor this control in the 7.1 version of the Toolkit which slipped from 7.0. Though we normally don't ship breaking changes, so we have to understand the implications of doing that work in a minor release. The new implementation should be simpler and may be able to workaround this issue. Otherwise, we don't have plans currently for GridSplitter specifically to try and work-around this in the meantime as that'd be just as much work as our eventual planned refactor.
#4834 did also call out the general need to set the cursor for a window, which is what the Cursor property should provide as well, but there's not an issue on GitHub tracking that yet?

@michael-hawker As @jschwizer99 said, I think GridSplitter should be able to use the UIElement.ProtectedCursor property. This is a protected property, but GridSplitter is a subclass so it has access.
We plan to eventually have a public UIElement.Cursor property as well, but don't have a timeframe for that yet. It is not planned for Project Reunion 1.0. But I think this should not be a blocker for GridSplitter.

@codendone the current version of GridSplitter has a 'wrapper' class that provides the hover functionality which is outside the base class (I don't know why it was done this way initially, but we later added helpers for UWP to make it easier to change the cursor). In either case, this contained helper class doesn't have access to the ProtectedCursor of its parent currently. Thus, why this doesn't work properly currently.
We've been wanting to re-write GridSplitter for a while, we have a pending start of that work that didn't make it in 7.0. In that version we'll have removed this helper class, so it should resolve the problem for this particular scenario for now.
Still concerned about other scenarios though, as our extensions to provide developers ways to change the cursor on any arbitrary element will still be broken, as is an easy way to change the cursor globally at the app-level, correct?

@michael-hawker What is GridSplitter a wrapper class for? If it is a wrapper for another subclass, that subclass could create its own public property or accessor functions.
The ProtectedCursor property enables many scenarios, including ones which weren't available in system XAML. We do still need an equivalent of CoreWindow.PointerCursor, as well as the eventual UIElement.Cursor, but don't have a timeline for these. Having a subclass panel at the root of the window is a potential workaround today for the app-level cursor scenario.

Collapsing this down to one issue, and I'm choosing to keep #4834 open, since that has the more recent sample.


Compute mean realized flows, fix/add tests

Fixes https://github.com/Deltares/Ribasim/issues/1356.

Last to do: Add test for mean realized user demand


Request: Option to hide action logger

Yes. This would be cool to have.
Basically, this can be implemented with query params for now as well.
You need to simply add these query params: full=0&down=0&left=1.
We could do this by while configuring the UI as well. If so, are we going to close Action logger forever or allow to show it back?

Good question. I think collapsible would be nice.

Okay. Then we could add above queryParams by default or set the default option to hide if there is no query param.

This can be fixed with #41 and https://github.com/kadirahq/storybook-addon-options
It'll work from Storybook v2.19.0


Clarification needed for IPv6 users in the get-started tutorial

File: get-started/part3.md, CC @johndmulhausen
Quoting from the tutorial, at the end of chapter Run your new load-balanced app:

You can run curl http://localhost several times in a row, or go to that URL in your browser and hit refresh a few times. Either way, you’ll see the container ID change, demonstrating the load-balancing; with each request, one of the 5 replicas is chosen, in a round-robin fashion, to respond.

Here should be a note for IPv6 users, saying something like:

If you do not get a response after 30 seconds, try curl -4 http://localhost This is because ........

Additional details
I have tested this on two identical (Ubuntu) servers. One had a valid IPv6 and IPv4 configuration in a working dual-stack network, the other with IPv6 disabled completely (not even link-local addresses).  The tutorial worked perfectly for both servers until the point described above. At that point I had to specify to use IPv4 (curl -4 http://localhost) or to use the IPv4 directly in my webbrowser (http://<IP_ADDRESS> vs http://localhost) for the server with dual-stack.

After some investigation, I discovered this "bug" only happens when I run docker in a guest-OS in VirtualBox! I tried the same setup on the host OS of the same machine, with a proper IPv6 and IPv4-configuration, and it worked.
Both the host- and guest-OS is Ubuntu 16.04. The guest-OS had a bridged network, so both the host and guest-OS was on the same network.


Support other string functions and operators

Reference issue
None.
What does this implement/fix?
This PR adds support to some useful string functions and operators found in major RDBMSs. These are:

REGEXP:	Whether string matches regular expression
RLIKE: Synonym for REGEXP
REPEAT():	Repeat a string the specified number of times
REPLACE():	Replace occurrences of a specified string
REVERSE():	Reverse the characters in a string

The implementation includes unit tests and has been based mainly on the MySQL specification, although PostgreSQL an SQL Server follow a very similar approach (references included below).
How to test this PR?
Test it live at https://rlaiola.github.io/relax/calc/local/uibk/local/0. For automated tests visit https://rlaiola.github.io/relax/test.html
References

https://dev.mysql.com/doc/refman/8.0/en/string-functions.html
https://www.postgresql.org/docs/15/functions-string.html
https://learn.microsoft.com/en-us/sql/t-sql/functions/string-functions-transact-sql?view=sql-server-ver16
https://learn.microsoft.com/en-us/sql/t-sql/language-elements/like-transact-sql?view=sql-server-ver16

This is really a good PR.
I was searching for these methods.
I hope the maintainer merges it soon.

thank you

@evazangerle it seems that this PR has not been merged into development.


(BOLT-1299) Properly detect multi-line evals

Previously, we were looking for a newline character to decide that the
content of an eval was multiple lines and should be wrapped in with().
However, single line strings created using the mutli-line syntax in YAML
(which is necessary to be interpreted as code blocks) end in a newline.
We now check for more precisely what we means, which is that the string
contains multiple lines, not just that it might end with a newline.

CLA signed by all contributors.

This sounds like it's related to a bug. Shouldn't it have a ticket?

Hmm yes it should, for the sake of a release note.

Is this the expected behavior for folded string as well?  (>)
For example (yaml plan snippet):
  - eval: >
      $x = $foo + 1
      $x * 2
    name: eval_step
    description: foo
  - eval: |
      $foo
    name: eval

Previously:
  $eval_step = with() || {
    $x = $foo + 1 $x * 2
  }
  $eval = with() || {
    $foo
  }

With this change:
  $eval_step = $x = $foo + 1 $x * 2

  $eval = $foo

Hmm, that's annoying because I believe there's no way for us to tell if a folded string was written as multiple lines. We could choose to always wrap folded strings since they could have been written as
multiple lines, or we could choose (as this PR implicitly does) to never wrap folded strings since they're always technically one line. Note the former requires building a new subclass of
EvaluableString though.

I think it is reasonable to expect users to choose the correct block scalar. I think this is an excellent SO for helping decide. https://stackoverflow.com/a/21699210 .


Do not fail on Kibana upgrade when legacy version is present

Kibana is upgraded only when there is no 'kibana-oss' package (replaced by 'opendistroforelasticsearch-kibana' since v0.5).
This condition has been added to not fail when 'epicli upgrade' is run for Epiphany v0.4 cluster.
We cannot upgrade Kibana to v7 having Elasticsearch in legacy version (v6).

/azp run


Suggestion for improvement

Since we have no workers, I suggest adding iplogger.org

Well, you can technically make it call the IPLogger URL by adding it into https://github.com/UnamSanctam/SilentETHMiner/blob/master/SilentETHMiner/Resources/Program.cs


moment().calendar() returns current time when parsing an ISO 8601 formatted string

I'm using moment().format() to output a string in ISO 8601 format, and storing that string to the db. When I recall that string later and parse it using moment(), and pass the resulting moment object to the moment().calendar() function, it seems not to recognize the time, returning the current time instead. I'm using moment 2.14.1.
Here's the example code:
let time = "2020-06-01T19:00:00-05:00";
let momentTime = moment(time);
let calendarTime = moment().calendar(momentTime);
console.log(momentTime.format());
console.log(calendarTime);

Example output:
"2020-06-01T19:00:00-05:00"
"Today at 6:33 PM"

Expected output:
"2020-06-01T19:00:00-05:00"
"Today at 7:00 PM"

OS: Windows
Browser: Chrome
Version: 83

Okay, so after some additional research, I discovered that I was passing the time to the wrong function. This code produces the expected output:
let time = "2020-06-01 19:00";
let momentTime = moment(time);
let calendarTime = moment(momentTime).calendar();

Output: "Today at 7:00 PM"

However, the documentation does not make it clear that this is the correct syntax to generate a calendar time relevant to the current moment for a given date. I even tried googling for examples. Perhaps add a few usage examples for this function to make our lives easier?

Sorry this caused you frustration.
I think the docs are ok for now (call .calendar() on the existing moment object). I don't know how to make it clearer, but you are welcome to contribute to
https://github.com/moment/momentjs.com/ .


[Payment due April 30th] [$500] Task- Complete domain and @expensify.sms must be included to create task with assignee via [] method

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.53-2
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:

Go to staging.new.expensify.com.
Go to any chat.
Create a task with assignee via [] pathway in the following methods:
a. Assignee from the same domain

Type [] @<email selected from suggestion list (dropped domain)> <task_name> and send to chat.
Type [] @ <task_name> and send to chat.
b. Assignee using contact method
Type [] @ <task_name> and send to chat.
Type [] @<contact number followed by @expensify.sms> <task_name> and send to chat.
c. Assignee with no prior chat from public domain (Gmail)
Type [] @ <task_name> and send to chat.

Expected Result:
Case a - User can create task with assignee using email selected from suggestion list (dropped domain)
Case b - User can create task with assignee using contact number without @expensify.sms
Case c - Task will be created with assignee if the email is a user with no prior chat from public domain (Gmail)
Actual Result:
Case a - Assignee can only be assigned using full email address. User is required to add complete domain after selecting from suggestion list
Case b - User is required to add @expensify.sms to assign user with contact number
Case c - The assignee completely disappears after the task is created
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/21e7c151-9526-416b-9c00-5c8b7147159b
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~017234f15d3d2395e5
Upwork Job ID:<PHONE_NUMBER>662351360
Last Price Increase: 2024-04-01
Automatic offers:

abzokhattab | Contributor | 0

@zanyrenney  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #vip-vsp

Agree this looks external and adding to VIPVSB.

Just a note to say, I am OOO now until April 2nd, reassigning BZ team member to help while I am OOO.

looks like we're accepting and reviewing propsoals cc @eVoloshchak

@eVoloshchak can you check out this proposal to see if it would work? https://github.com/Expensify/App/issues/38424#issuecomment-2001883271

Just a heads up that I'm going to be ooo on Friday and Monday for Easter. I'll check in on this on Tuesday when I'm back.

@abzokhattab's proposal does look good to me, let's spin up the PR!
🎀👀🎀 C+ reviewed!

Looks good. Thanks for attaching the POC. It doesn't display the case for user with contact number. I believe it should work.

Good catch @MonilBhavsar, i didnt consider the phone numbers in my proposal, i have just modified it to consider phones as well.
so basically we are mimicking these conditions in the getParsedComment function.. so i would suggest to move it in a shared function that would be used in both locations instead of the code duplication.
Here is the result:
https://github.com/Expensify/App/assets/59809993/53a2b4be-3dc0-40d3-abd9-5b848389d40a

so i would suggest to move it in a shared function that would be used in both locations instead of duplicating the code.

Sounds good 👍
Let's do it

The PR is ready. please have a look and let me know if you have any comments.

looks like PR is in production - https://github.com/Expensify/App/pull/39475

payment summary:
paid $500 to @abzokhattab via upwork.
@eVoloshchak has not applied to the job on Upwork, i have DM'd them to apply.

payment summary:
paid $500 to @abzokhattab via upwork.
@eVoloshchak owed $500 to be paid via ND requests!

$500 approved for @eVoloshchak


[SDK] Create unify client for all Training Job types

Recently we introduced SDKs for MPIJob: https://github.com/kubeflow/training-operator/pull/1608 and XGBoostJob: https://github.com/kubeflow/training-operator/pull/1607 in a separate Kubernetes Python clients.
All of our clients (TFJobClient, PyTorchJobClient, MPIJobClient, XGBoostJobClient, MXJobClient) use logically the same CRUD APIs and we can reduce our code base.
Also, from the user perspective I don't think it is neseccary to create various Kubernetes Python clients for each training framework (e.g. TF, PyTorch, etc.)
I propose to create the unify TrainingClient (similar to our unify Training Controller) and to define APIs for each job under this class. For example, create_tfjob, create_pytorchjob, create_mxjob_from_func, etc.
I think that will simplify our UX and SDK maintenance effort.
/kind discussion
@kubeflow/wg-training-leads @tenzen-y @anencore94 What do you think ?

/area sdk

Great idea!

Agree. It will give a better user experience

Looks great!

/assign @andreyvelich


@azure/arm-kusto (6.2.1) : vulnerability , Misinterpretation of malicious XML input

"@azure/arm-kusto": "^6.2.1",

npm audit
                   === npm audit security report ===

                             Manual Review
         Some vulnerabilities require your attention to resolve

      Visit https://go.npm.me/audit-guide for additional guidance

Moderate        Misinterpretation of malicious XML input
Package         xmldom
Patched in      >=0.7.0
Dependency of   @azure/ms-rest-nodeauth
Path            @azure/ms-rest-nodeauth > adal-node > xmldom
More info       https://npmjs.com/advisories/1769

Looks like adal-node's dependency on xmldom is via "xmldom": ">= 0.1.x"
So, whenever an update to xmldom is published, we should get the fix for free.
Therefore, closing this issue.

They most likely wont update 0.1.x (last update Dec 19, 2019)
You need to update to a new feature version. 0.x

If the dependency was listed as ^0.1.x then yes, the next version 0.7.0 that has the fix will not be picked up.
But the dependency is listed as >= 0.1.x which should cover ALL versions greater than 0.1

If the dependency was listed as ^0.1.x then yes, the next version 0.7.0 that has the fix will not be picked up.
But the dependency is listed as >= 0.1.x which should cover ALL versions greater than 0.1

So you are saying we wont get a fix for this? Since 0.1.x will not likely ever be updated.

When xmldom 0.7.0 gets released, it will contain the fix.
Users of @azure/ms-rest-nodeauth will get that fix for free when they do a fresh npm install in their application which will pull in 0.7.0 of xmldom
I am saying that there are no changes needed in the @azure/ms-rest-nodeauth package or the adal package for customers to receive the fix once 0.7.0 of xmldom is released.

Please subscribe to https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/4011 for more on this issue.

<EMAIL_ADDRESS>has been released with @xmldom/xmldom.

Thanks @jasonnutter!


Create actual nightly release when pushing to master

The artifacts from Github Actions are only kept for a limited time.
You need to be logged into Github to download any artifacts.
You need to know how that page even works in the first place to find anything.
This creates an actual release when changes are pushed/merged to master. It still only builds and uploads artifacts for pull requests.
Looks like this: https://github.com/Daxtorim/polonium/releases

Lgtm, thank you for doing this. I don't really know how GitHub actions work (first time using them in a project), so this is very helpful!


error when    Start the client   "npm run serve"

I followed the lab without any issue until the step : Start the client   "npm run serve"

try npm start


The repository is inactive, what next? Continuation of the project

I don't know what's going on with minestom, but for people looking for a good fork, I recommend this: https://github.com/hollow-cube/minestom-ce

I don't know if you're in the Minestom discord server, but Minestom-CE is maintained by Mattw, who works with base Minestom too.
Everyone already uses Minestom-CE, and it's going to get merged into base Minestom soon.

#1937 is now merged.


Use kube-state-metrics jsonnet dependency #369

Hi, This is draft PR for #369. There are few mismatches on labels, so the question is if there is a need to keep them or just follow upstream.

e2e tests failed, gonna check this.

yes, at the moment it deploys and configured RBAC for Kube-prometheus. The thing which is missing is ServiceMonitor.
I've changed it and it discovered, try to figured out why

it got added to job="monitoring".

hm, I pushed lib update and manifests in one commit , it was not good idea. How can I fix that this first check is not failing?

Just soft reset the last commit and just do an git add -p jsonnetfile.lock.json  and only commit the lines about kube-state-metrics. Then make clean and make generate-in-docker again. Should fix this.

Thanks, it looks good at least from test perspective.

Added upstream alerts.

Could you squash the changes? Then lgtm! Thanks a lot for taking care of this!

LGTM

Thanks so much @olegmayko ! 🎉

@LiliC I am happy to contribute back because I am heavily using/relying on Kube-prometheus.

@olegmayko can I ask why delete resource limit  ?

@zgfh, that could be something which gone missing during the replacing. The resource limits are not implemented in upstream library https://github.com/kubernetes/kube-state-metrics, so if you think it's necessary you may open the ticket to add the limits there.

You can also just add them yourself using jsonnet in your repo :)


Won't Announce

Event ID " 54f9ef740ec240188dcdad0d274cc382"
I import the 0710 London Waterloo to Exeter St Davids service from realtimetrains and click on sherborne then when I play the announcement it doesn't work

This has been fixed with an update to the website today. Thanks for reporting it!


Can you add a link to the Extension in the chrome store

I think it would be helpful to add a link (this I believe https://chrome.google.com/webstore/detail/code-tours-github/emmipndjppboloecpfgnckbkcehhhpkc?hl=en) to the readme

Hello, thanks for raising the issue.
Actually, the images for Chrome and Firefox logos in the readme are links to the different store. Isn't that the one you're talking about?

yes I guess so , it wasn't immediately clear that they were links, thanks

No worries! I'm closing this one then 🙂


Download dataset

Hi Rowan,
Really nice work and thanks for sharing the code!
In case I missed it, may I ask where the script to download all the youtube video is? I just found the processing script in the data/ folder.

I also could not find it. Is there any progress on this @rowanz ?

sorry for taking a while with this one y'all. I have a script, I'm not sure how helpful it'll be -- I made sure to document all the caveats though and things to look into if you want to redownload the videos 😄 see commit 1144b80


JLink start application on classpath

As JLink uses JPMS, I was expecting the application to start as a modularized application, but it starts with classpath.
We should have an option to run the application as JPMS app (and should be default in the future.

I this still being worked on? I typically deploy using modularized runtimes so this would be handy.


[DRC-251] Design and implement Time-series Metrics to show the diff of Datetime columns

When we implemented the histogram diff chart, the histogram did support the DateTime type in the beginning. However, we decided to remove Datetime and implement a new kind of chart Time-series Metrics for the Datetime type.
In this chart, users can select a DateTime column. Recce will show the time-series metrics based on the data in the selected column.  Users can also select the time unit of the metrics by the frontend UI in Recce. (ex. year, month, week, day, hours, or mins, etc…)
From SyncLinear.com | DRC-251

In this story, we will implement the high-level UI to query the time-series diff (metric diff) in a model.
Use cases

understand a datatime column distribution.
compare the metric trend drift

Requirements
It will include these params

model
datetime column
tiimegrain (day, week, month, year)
aggregation method (count, distinct count, sum, avg, min, max)
column to aggregate

Display the trend in a time-series chart. It contains two series (base, current)


Fixed unrecognized shows

There was a problem in get_show_ids that caused show names like "Greys
Anatomy", "NCIS Los Angeles", ... not to be found in show_ids, because
the real names take additional special characters like ' ? : &, so what
i've done was to add extra names to show_ids where basically we remove
or replace the special charecters

Can you reproduce with master? If so please give reproduce steps. I'll add unit tests.


Updated and Swapped some values

Fixes #.
Motivation
Explain the content here.
Explain why you want to make the changes and what problem you're trying to solve.
Modifications
Describe the modifications you've done.
Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

Fixes #3514.

this issue #3514 has been fixed.


Enable dependabot for Git Hub Actions

Type of change

Enhancement / new feature

Description
https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot#enabling-dependabot-version-updates-for-actions
Let's see if this helps reduce the grunt work.
Additional Context
Why are you making this pull request?
Checklist
Please go through this checklist and make sure all applicable tasks have been done

[ ] Write tests
[ ] Make sure all tests pass
[ ] Update documentation
[ ] Reference relevant issue(s) and close them after merging
[ ] Update CHANGELOG.md

replaces #285


chore: replace all 'chain' with 'network'

Resolves #358
This pr is made to replace all 'chain' in the codebase with 'network'

@0xcodercrane please review this

#497

@0xcodercrane can you review this?


Custom spawn stations

Description
This PR fixes than long outstanding problem that you can't choose the station you initially spawn at. The problem is handled by removing the engine/src/main/resources/assets/configs/mainStationConfig.json file and replacing it with a file called startingStation.json in each module's assets/configs folder. These files are laid out exactly the same as the old mainStationConfig.json, with the default file looking like this:
{
    "hull": "core:station",
    "items": "core:gun core:gun",

    "guard": {
        "hull": "core:imperialBig",
        "items": "core:fixedGun core:fixedShotGun core:mediumArmor+core:heavyArmor core:shield+core:bigShield",
        "density": 3
    }
}

Testing
Add the above code to a file named startingStation.json in each module's assets/configs folder.

Hooray Jenkins reported success with all tests good!

Hooray Jenkins reported success with all tests good!

Hooray Jenkins reported success with all tests good!

Okay, time to take a step back. You know how you can create branches starting from a specific commit? Well, this branch should have originated from MovingBlocks/develop, and not Steampunkery/develop. Another small thing, the ships should have gone in their own branch (formicModule or something) so that your develop would have been clean.
Either way, I would request that you create a new PR for this, with only the required commits.
(Create a new branch from MovingBlocks/develop, and either cherry pick the relevant commits, or copy-paste the final files and commit them manually.)
With that said, I'm still reviewing the relevant commits on this PR, so that you don't have to waste time waiting for my review.


SDK: wait_for_job reports typeError

I follow instruction https://github.com/kubeflow/training-operator/blob/master/sdk/python/examples/kubeflow-tfjob-sdk.ipynb  and when I run to tfjob_client.wait_for_job('mnist', namespace=namespace, watch=True) and I got follow errors. Rest of the steps work well. I think it's probably the python and dependency compatibility issue.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/var/folders/tx/s3hg89kj56xcyhdhw_1ykwy00000gq/T/ipykernel_99459/444279540.py in <module>
----> 1 tfjob_client.wait_for_job('mnist', namespace=namespace, watch=True)

/usr/local/lib/python3.9/site-packages/kubeflow/training/api/tf_job_client.py in wait_for_job(self, name, namespace, timeout_seconds, polling_interval, watch, status_callback)
    240
    241         if watch:
--> 242             tfjob_watch(
    243                 name=name,
    244                 namespace=namespace,

/usr/local/lib/python3.9/site-packages/retrying.py in wrapped_f(*args, **kw)
     47             @six.wraps(f)
     48             def wrapped_f(*args, **kw):
---> 49                 return Retrying(*dargs, **dkw).call(f, *args, **kw)
     50
     51             return wrapped_f

/usr/local/lib/python3.9/site-packages/retrying.py in call(self, fn, *args, **kwargs)
    210                 if not self._wrap_exception and attempt.has_exception:
    211                     # get() on an attempt with an exception should cause it to be raised, but raise just in case
--> 212                     raise attempt.get()
    213                 else:
    214                     raise RetryError(attempt)

/usr/local/lib/python3.9/site-packages/retrying.py in get(self, wrap_exception)
    245                 raise RetryError(self)
    246             else:
--> 247                 six.reraise(self.value[0], self.value[1], self.value[2])
    248         else:
    249             return self.value

/usr/local/lib/python3.9/site-packages/six.py in reraise(tp, value, tb)
    717             if value.__traceback__ is not tb:
    718                 raise value.with_traceback(tb)
--> 719             raise value
    720         finally:
    721             value = None

/usr/local/lib/python3.9/site-packages/retrying.py in call(self, fn, *args, **kwargs)
    198         while True:
    199             try:
--> 200                 attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
    201             except:
    202                 tb = sys.exc_info()

/usr/local/lib/python3.9/site-packages/kubeflow/training/api/tf_job_watch.py in watch(name, namespace, timeout_seconds)
     54             update_time = last_condition.get('lastTransitionTime', '')
     55
---> 56             tbl(tfjob_name, status, update_time)
     57
     58             if name == tfjob_name:

/usr/local/lib/python3.9/site-packages/table_logger/table_logger.py in __call__(self, *args)
    202
    203         line = self.format_row(*row_cells)
--> 204         self.print_line(line)
    205
    206     def format_row(self, *args):

/usr/local/lib/python3.9/site-packages/table_logger/table_logger.py in print_line(self, text)
    306
    307     def print_line(self, text):
--> 308         self.file.write(text.encode(self.encoding))
    309         self.file.write(b'\n')
    310         self.file.flush()

/usr/local/lib/python3.9/site-packages/ipykernel/iostream.py in write(self, string)
    499
    500         if not isinstance(string, str):
--> 501             raise TypeError(
    502                 f"write() argument must be str, not {type(string)}"
    503             )

TypeError: write() argument must be str, not <class 'bytes'>

/cc @alembiewski @terrytangyuan
Env:

Docker Desktop on Mac
SDK in master branch

I think it's python3.9 and ipykernel compatibility issue or something might be wrong on table-logger side, or both. But this is definitely not related to the retrying package - the watch method is annotated to retry on error, so that's the reason we see it in the. stack trace. FTR, I was able to run the notebook under question end-to-end without any issues on the following env:
kubeflow@tensorflow-0:~$ jupyter --version
jupyter core     : 4.7.1
jupyter-notebook : 6.4.2
qtconsole        : not installed
ipython          : 7.26.0
ipykernel        : 5.5.5
jupyter client   : 6.1.12
jupyter lab      : 3.0.16
nbconvert        : 6.0.7
ipywidgets       : 7.6.3
nbformat         : 5.0.8
traitlets        : 4.3.3
kubeflow@tensorflow-0:~$ python --version
Python 3.7.6
kubeflow@tensorflow-0:~$ pip show retrying
Name: retrying
Version: 1.3.3
Summary: Retrying
Home-page: https://github.com/rholder/retrying
Author: Ray Holder
Author-email: UNKNOWN
License: Apache 2.0
Location: /opt/conda/lib/python3.7/site-packages
Requires: six
Required-by: kubeflow-training

Can you share the output of jupyter --version?

@alembiewski Here's my envs
✗ jupyter --version
jupyter core     : 4.7.1
jupyter-notebook : 6.4.3
qtconsole        : 5.1.1
ipython          : 7.27.0
ipykernel        : 6.2.0
jupyter client   : 7.0.1
jupyter lab      : not installed
nbconvert        : 6.1.0
ipywidgets       : 7.6.3
nbformat         : 5.1.3
traitlets        : 5.0.5

Hey @Jeffwan, I dug a bit deeper into this issue and it seems that table-logger library used in watchmethod of the tf_job_watch.py is not compatible with ipykernel 6.0.0 and up. So most likely if you try to downgrade the ipkernel version to 5.x, it will work even on your env. Sharing some findings below.
Here is the commit that changes the logic of the write method https://github.com/ipython/ipykernel/commit/1a50cda50837de89cc2a4047fc02b3aff254d48a, which now expects a string argument and raises an error otherwise. And if we look at the code from table-logger, we can clearly see it writes bytes, not string.
Not sure what is the best way for us to proceed here, but it seems that table-logger is no longer maintained (the last commit was on Apr 2019), so might consider dropping and look for alternatives.
Do you think it's a blocker for releasing the SDK to PyPI? It looks like, tfjob_client.wait_for_job method provides a special watch flag that can be used to disable logs printing using table-logger.

Yes agree it's not a blocker. We can probably fix this by adding logic around imports on different versions of the problematic module.


Create Navbar Item component

Create the Navbar Item component which should have text. The component should receive the following parameters: text and the route (function) to where it should lead the user to once it is clicked. Please refer to the color palette for the accurate hex code colors.
Component Image:

Color Palette:

Hi, I've over 4 years professional experience working on frontend applications (React, Vue, Next, Nuxt, TS). I believe this is an excellent first issue for me to contribute to. Can take on this task?
ETA: 24 hrs

May I handle this issue?

Can I start working on this?
I am a front-end developer specializing in responsive web design,
device-compatible email templates, 3D web integration,
and technical writing on programming topics. I also contribute
to open-source documentation and help build documentation sites.

Hi👋🏻
I’m Santiago Villarreal Arley, a proactive and communicative developer with experience in both front-end and back-end Web3 development. I’m a proud member of Dojo Coding and have worked on various projects built on StarkNet and Stellar, where I actively contributed to creating scalable and efficient solutions. I also won a Web3 hackathon Buildathon for my work on BuildMyEvent, an open-source blockchain project focused on solving real-world challenges and integrating useful features.
To tackle this issue:
I’ll create a Navbar Item component that accepts text and route as props. The component will use the provided color palette for styling and navigate the user to the specified route when clicked.
ETA: 12-48 hours. Feel free to reach out via Telegram

My name is Kamshak Lucky Isuwa, and I am excited to apply for the frontend developer role to create the Navbar Item component. With extensive experience in React.js, Next.js, JavaScript, and modern frontend practices, I am confident in delivering a polished and functional component within 24 hours, adhering to the provided color palette and design guidelines.

I would like to work on this issue

Hello Team,
My name is Brandon Andrey Fernandez, and I am part of the Dojo Coding Community ⛩💻 KindFi and https://bitcash.org/en. I’m excited about the opportunity to contribute to your project during Only Dust Hackathon #11! 🚀
I am a full-stack developer with experience in Web3 and blockchain technologies, particularly in projects involving smart contracts, AI integration, and decentralized solutions. I have worked on a large number of web3 projects and solutions as for example:
https://masterbots.ai/
https://bitlauncher.ai/en
I am interested in this specific issue because it combines my passions: blockchain, AI technology, and modern web development. I am motivated by the opportunity to improve my skills and contribute to the project. I have participated in hackathons like ODH and other web2 hacks.
During the hackathon, I can dedicate approximately 5h min hours per day to working on this issue. I am committed to active collaboration, delivering high-quality code, and maintaining open communication with the team.
You can find my profiles and links here:

GitHub: https://github.com/Bran18?tab=repositories
OnlyDust: https://app.onlydust.com/u/Bran18
X https://x.com/branfdez_18
LinkedIn: https://www.linkedin.com/in/brandonfdez18/

Thank you for considering my application. Please let me know if you have any questions or need any additional information.

Can I start working on this?


Create a new docker file for scalar-admin

To containerize the scalar-admin

@scalar-boney Can you also update the README to include the usage and how to build for the docker container?

@scalar-boney Can you also update the README to include the usage and how to build for the docker container?

README file updated with above details 8eb846a

@scalar-boney Please review the PR by yourself before re-requesting for a review.


Method on EloquentUserProvider to create query builder instance

Reason: allows easy extension for a custom eloquent based auth provider in case, for example, you'd only need to have an extra constraint on the backing model applied. Prevents the need to fully implement the UserProvider interface.
Explanation of changes in EloquentUserProvider: instead of calling newQuery() on the model instance directly, now done through a protected method that can easily be overriden.
Example implementation where someone would have an "admin" guard that should only validate when a extra criteria (a field on the users table) is set:
<?php

namespace App\Extensions;

use Illuminate\Auth\EloquentUserProvider;

class MyEloquentAdminProvider extends EloquentUserProvider
{
    protected function modelQuery($model = null)
    {
        return parent::modelQuery($model)->where('role', 'admin');
    }
}

note to maintainers: new commit https://github.com/laravel/framework/pull/27734/commits/391eae8bf75008bbc92b60d8f1271fcb5adbb124 adds back in a newQuery call (through the new modelQuery method) that was taken out at https://github.com/laravel/framework/commit/f74c83eff70a05c47f97e6f0566bf63a708f8bf6


pageserver: remove legacy read path

Problem
We have been maintaining two read paths (legacy and vectored) for a while now. The legacy read-path
was only used for cross validation in some tests.
Summary of changes

Tweak all tests that were using the legacy read path to use the vectored read path instead
Remove the read path dispatching based on the pageserver configs
Remove the legacy read path code

We will be able to remove the single blob io code in pageserver/src/tenant/blob_io.rs when
https://github.com/neondatabase/neon/issues/7386 is complete.
Closes https://github.com/neondatabase/neon/issues/8005
Checklist before requesting a review

[ ] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.
[ ] Do we need to implement analytics? if so did you add the relevant metrics to the dashboard?
[ ] If this PR requires public announcement, mark it with /release-notes label and add several sentences in this section.

Checklist before merging

[ ] Do not forget to reformat commit message to not include the above checklist

We will be able to remove the single blob io code in pageserver/src/tenant/blob_io.rs when https://github.com/neondatabase/neon/issues/7386 is complete.

As a note, I think it would be useful to move and keep the the tests in blob_io.rs.
Also, it might be useful to eventually remove the _vectored postfix from names as it is the new default.

It seems that we didn't remove read path configurations like DEFAULT_GET_IMPL in this pull request? I assume there will be a follow up PR to completely remove them later.

Yes, I will do the configs in a follow-up


Update error message

Update error message to correctly escape \w character in output string
current output is:
The given name 'something' does not conform to the naming rule /^((::)?[a-z_]w*)(::[a-z]\w*)*$/
This should be
The given name 'something' does not conform to the naming rule /^((::)?[a-z_]\w*)(::[a-z]\w*)*$/
so the regex is actually correct and I can test against it properly!

Can one of the admins verify this patch?

Well that's a strange build failure - I don't suppose anyone has some insights into what is going on?

Thanks for your contribution @kizzie! The appveyor issue is transient, I'll rekick it.


Cannot login/attach vaults

Diagnostic
Workflow version
2023.12
Alfred version
5.1.4
macOS version
14.2.1
Architecture
i386
Preferences
Dict {
multiple_entries = false
hostnames_only = false
}
1Password version
8.10.24
op version
2.24.0
Launchd job
Loaded: -	0	com.alfredapp.vitor.1password
Installed
Debugger output
[08:11:03.917] Logging Started...
[08:11:14.955] 1Password[List Filter] Processing complete
[08:11:14.965] 1Password[List Filter] Passing output 'manage_vaults' to Conditional
[08:11:14.967] 1Password[Conditional] Processing complete
[08:11:14.968] 1Password[Conditional] Script Filter modified incoming arg from 'manage_vaults' to ''
[08:11:14.970] 1Password[Conditional] Passing output '' to Script Filter
[08:11:14.981] 1Password[Script Filter] Queuing argument '(null)'
[08:11:15.064] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:15.069] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:15.165] 1Password[Script Filter] Queuing argument '(null)'
[08:11:15.244] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:15.249] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:15.348] 1Password[Script Filter] Queuing argument '(null)'
[08:11:15.428] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:15.429] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:15.530] 1Password[Script Filter] Queuing argument '(null)'
[08:11:15.610] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:15.617] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:15.713] 1Password[Script Filter] Queuing argument '(null)'
[08:11:15.793] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:15.800] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:15.897] 1Password[Script Filter] Queuing argument '(null)'
[08:11:15.986] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:15.992] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:16.089] 1Password[Script Filter] Queuing argument '(null)'
[08:11:16.171] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:16.178] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:16.271] 1Password[Script Filter] Queuing argument '(null)'
[08:11:16.352] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:16.359] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:16.452] 1Password[Script Filter] Queuing argument '(null)'
[08:11:16.533] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:16.540] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:16.634] 1Password[Script Filter] Queuing argument '(null)'
[08:11:16.714] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:16.720] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:16.819] 1Password[Script Filter] Queuing argument '(null)'
[08:11:16.900] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:16.907] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:17.004] 1Password[Script Filter] Queuing argument '(null)'
[08:11:17.087] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:17.093] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:17.187] 1Password[Script Filter] Queuing argument '(null)'
[08:11:17.266] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:17.268] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:17.369] 1Password[Script Filter] Queuing argument '(null)'
[08:11:17.449] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:17.456] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:17.553] 1Password[Script Filter] Queuing argument '(null)'
[08:11:17.633] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:17.640] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:17.737] 1Password[Script Filter] Queuing argument '(null)'
[08:11:17.817] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:17.824] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:17.921] 1Password[Script Filter] Queuing argument '(null)'
[08:11:18.000] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:18.009] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:18.104] 1Password[Script Filter] Queuing argument '(null)'
[08:11:18.184] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:18.191] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:18.288] 1Password[Script Filter] Queuing argument '(null)'
[08:11:18.368] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:18.374] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:18.467] 1Password[Script Filter] Queuing argument '(null)'
[08:11:18.549] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:18.557] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:18.648] 1Password[Script Filter] Queuing argument '(null)'
[08:11:18.728] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:18.735] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:18.831] 1Password[Script Filter] Queuing argument '(null)'
[08:11:18.912] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:18.919] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:19.013] 1Password[Script Filter] Queuing argument '(null)'
[08:11:19.095] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:19.101] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:19.197] 1Password[Script Filter] Queuing argument '(null)'
[08:11:19.286] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:19.293] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:19.390] 1Password[Script Filter] Queuing argument '(null)'
[08:11:19.469] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:19.476] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:19.574] 1Password[Script Filter] Queuing argument '(null)'
[08:11:19.654] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:19.656] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:19.757] 1Password[Script Filter] Queuing argument '(null)'
[08:11:19.837] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:19.845] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:19.941] 1Password[Script Filter] Queuing argument '(null)'
[08:11:20.021] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:20.028] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:20.125] 1Password[Script Filter] Queuing argument '(null)'
[08:11:20.205] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:20.212] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:20.309] 1Password[Script Filter] Queuing argument '(null)'
[08:11:20.390] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:20.397] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:20.492] 1Password[Script Filter] Queuing argument '(null)'
[08:11:20.573] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:20.580] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:20.676] 1Password[Script Filter] Queuing argument '(null)'
[08:11:20.755] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:20.762] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:20.860] 1Password[Script Filter] Queuing argument '(null)'
[08:11:20.941] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:20.949] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:21.044] 1Password[Script Filter] Queuing argument '(null)'
[08:11:21.127] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:21.133] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:21.229] 1Password[Script Filter] Queuing argument '(null)'
[08:11:21.313] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:21.320] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:21.412] 1Password[Script Filter] Queuing argument '(null)'
[08:11:21.494] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:21.501] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[08:11:21.597] 1Password[Script Filter] Queuing argument '(null)'
[08:11:21.679] 1Password[Script Filter] Script with argv '(null)' finished
[08:11:21.685] 1Password[Script Filter] {"rerun":0.1,"items":[{"title":"Updating vaults…","subtitle":"Will take a few seconds","valid":false,"variables":{"excluded":false,"vaultID":false}}]}
[Continues without ending]

More details
When I go to 1pextras and I go to "Manage vaults" it says "updating vaults..." and it NEVER recovers (waited a few minutes).  the debug output suggests the "Script Filter" for some reason "modified incoming arg from 'manage_vaults' to ''", which might explain why it never gets the vault information.

the debug output suggests the "Script Filter" for some reason "modified incoming arg from 'manage_vaults' to ''", which might explain why it never gets the vault information.

Those things are orthogonal, that’s not the cause. But thumbs up for reading the debugger and trying to figure it out. I appreciate it and could have been something I had missed.
First step is to :1pextras → Force Update Items. See if that fixes it.

 Please run `op signin --help` for instructions
./1password.js: execution error: Error: SyntaxError: JSON Parse error: Unexpected EOF (-2700)
[13:32:43.922] 1Password[Run Script] Processing complete
[13:32:43.924] 1Password[Run Script] Passing output '' to Call External Trigger
[13:32:43.926] 1Password[External] Processing complete
[13:32:43.927] 1Password[External] Passing output '' to Run Script
[13:32:43.945] 1Password[Run Script] Processing complete
[13:32:43.953] 1Password[Run Script] Passing output '' to Run Script

I notice it says I am not logged in with the op signin. I did check, and :1pextras > Manage Accounts did list my account as checked.  Is there anyway to force it to log in again.  I can log in on the command line, no problem, so maybe it doesn't have the correct credentials saved?  I will note I do NOT have TouchID on this old Mac keyboard.  Maybe that is the issue?  the odd thing is this workflow did work just fine until recently, but maybe 1Password now demands that for security?

I will note I do NOT have TouchID on this old Mac keyboard. Maybe that is the issue?

Unlikely, but that’s something only 1Password has control over. The workflow just tries to authenticate, and whatever method is requested is up to their CLI.

Is there anyway to force it to log in again.

You can :1pextras → Reset Workflow and try again.

I can log in on the command line

But I’d recommend doing that, since you seem to know how. The workflow hasn’t changed anything related to those areas in a while, so it’s bound to have been something with the CLI authentication from 1Password’s side.

I did already perform a Reset Workflow.  In fact, that's what might have wiped out my previous ability to access 1password.  I do suspect this may be a change in the CLI which I completely understand you don't have control over.  I'll ask the 1password folks.


QuickStart Docs not updated with proper system.config.js

FYI
Just went through the quickstart (https://angular.io/docs/ts/latest/quickstart.html) and had to get the system.config.js file from the github repo, since the one in the tutorial was off.
From the quickstart web page:
 // Bundled (~40 requests):
  function packUmd(pkgName) {
    packages['@angular/'+pkgName] = { main: pkgName + '.umd.js', defaultExtension: 'js' };
  }

From github repo:
 // Bundled (~40 requests):
  function packUmd(pkgName) {
    packages['@angular/'+pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
  }

the '/bundles/' prefix is missing in the quickstart docs.

Sorry about that, that is fixed by now.


Fixed typo in using-openstack-cloud-controller-manager.md

What this PR does / why we need it:
Fixes a typo in docs that I found while reading.
Which issue this PR fixes(if applicable):
fixes #
Special notes for reviewers:

Release note:

NONE

/ok-to-test

/lgtm
/approve


2.0.0 GI/Gstreamer camera provider produces a blank screen

Software Versions

Python: v3.6.9
OS: Kubuntu 18.04.5 LTS
Kivy: 2.0.0
Kivy installation method: python3 -m pip install --user --upgrade git+https://github.com/kivy/kivy.git@stable

Describe the bug
Running the examples/camera  1.11.1 gives a camera image, 2.0.0 shows a white screen, no errors appear in the logs and it appears the GI/Gstreamer provider is correctly being loaded.
Expected behavior
I would expect to see the camera image when the play button is clicked.
To Reproduce
> cd examples/camera
> python3 main.py

Click the Play button
Code and Logs and screenshots
[INFO   ] [Logger      ] Record log in /home/morris/.kivy/logs/kivy_20-12-11_27.txt
[INFO   ] [Kivy        ] v2.0.0
[INFO   ] [Kivy        ] Installed at "/home/morris/.local/lib/python3.6/site-packages/kivy/__init__.py"
[INFO   ] [Python      ] v3.6.9 (default, Oct  8 2020, 12:12:24)
[GCC 8.4.0]
[INFO   ] [Python      ] Interpreter at "/usr/bin/python3"
[INFO   ] [Factory     ] 186 symbols loaded
[DEBUG  ] [Cache       ] register <kv.lang> with limit=None, timeout=None
[DEBUG  ] [Cache       ] register <kv.image> with limit=None, timeout=60
[DEBUG  ] [Cache       ] register <kv.atlas> with limit=None, timeout=None
[INFO   ] [ImageLoaderFFPy] Using ffpyplayer 4.3.2
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_ffpyplayer
[DEBUG  ] [Cache       ] register <kv.texture> with limit=1000, timeout=60
[DEBUG  ] [Cache       ] register <kv.shader> with limit=1000, timeout=3600
[DEBUG  ] [App         ] Loading kv <./testcamera.kv>
[DEBUG  ] [App         ] kv <./testcamera.kv> not found
[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] Backend used <sdl2>
[INFO   ] [GL          ] OpenGL version <b'3.0 Mesa 20.0.8'>
[INFO   ] [GL          ] OpenGL vendor <b'Intel Open Source Technology Center'>
[INFO   ] [GL          ] OpenGL renderer <b'Mesa DRI Intel(R) HD Graphics 630 (KBL GT2)'>
[INFO   ] [GL          ] OpenGL parsed version: 3, 0
[INFO   ] [GL          ] Shading version <b'1.30'>
[INFO   ] [GL          ] Texture max size <16384>
[INFO   ] [GL          ] Texture max units <32>
[DEBUG  ] [Shader      ] Fragment compiled successfully
[DEBUG  ] [Shader      ] Vertex compiled successfully
[DEBUG  ] [ImageSDL2   ] Load </home/morris/.local/lib/python3.6/site-packages/kivy/data/glsl/default.png>
[INFO   ] [Window      ] auto add sdl2 input provider
[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
[DEBUG  ] [Camera      ] Ignored <picamera> (import error)
 /home/morris/.local/lib/python3.6/site-packages/kivy/core/camera/camera_gi.py:10: PyGIWarning: Gst was imported without specifying a version first. Use gi.require_version('Gst', '1.0') before import to ensure that the right version gets loaded.
   from gi.repository import Gst
[INFO   ] [CameraGi    ] Using Gstreamer <IP_ADDRESS>
[INFO   ] [Camera      ] Provider: gi(['camera_picamera'] ignored)
[INFO   ] [Text        ] Provider: sdl2
[DEBUG  ] [Resource    ] add </usr/share/fonts> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/eot> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/eot/font-awesome> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/svg> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/svg/font-awesome> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/cMap> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lohit-devanagari> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/fonts-orya-extra> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lohit-gujarati> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lohit-malayalam> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lohit-tamil-classical> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/fonts-kalapi> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/ttf-khmeros-core> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/abyssinica> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/tibetan-machine> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/oxygen> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/fonts-deva-extra> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/openoffice> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/Navilu> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/inconsolata> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/dejavu> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lohit-punjabi> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lohit-assamese> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/padauk> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/malayalam> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/font-awesome> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/noto> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/ubuntu> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/fonts-gujr-extra> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/Gubbi> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lohit-bengali> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lyx> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/ttf-bitstream-vera> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lohit-tamil> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/Nakula> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lato> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/fonts-beng-extra> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/fonts-telu-extra> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/Gargi> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lohit-oriya> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/droid> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/sinhala> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lohit-telugu> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/liberation> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/ancient-scripts> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/nanum> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/Sahadeva> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/pagul> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/kacst-one> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/kacst> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/Sarai> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/freefont> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/fonts-guru-extra> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/tlwg> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/msttcorefonts> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/takao-gothic> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/hack> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lohit-kannada> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/samyak> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/samyak-fonts> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/truetype/lao> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/type1> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/type1/gsfonts> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/opentype> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/opentype/stix-word> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/opentype/malayalam> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/opentype/font-awesome> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/opentype/noto> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/opentype/stix> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/opentype/cantarell> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/woff> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/woff/font-awesome> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/cmap> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/X11> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/X11/encodings> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/X11/encodings/large> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/X11/misc> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/X11/Type1> in path list
[DEBUG  ] [Resource    ] add </usr/share/fonts/X11/util> in path list
[DEBUG  ] [Resource    ] add </usr/local/share/fonts> in path list
[DEBUG  ] [Resource    ] add </home/morris/.fonts> in path list
[DEBUG  ] [Resource    ] add </home/morris/.fonts/o> in path list
[DEBUG  ] [Resource    ] add </home/morris/.fonts/i> in path list
[DEBUG  ] [Resource    ] add </home/morris/.fonts/1> in path list
[DEBUG  ] [Resource    ] add </home/morris/.fonts/L> in path list
[DEBUG  ] [Resource    ] add </home/morris/.local/lib/python3.6/site-packages/kivy/data/fonts> in path list
[DEBUG  ] [Base        ] Create provider from mouse
[INFO   ] [Base        ] Start application main loop
[INFO   ] [GL          ] NPOT texture support is available
[DEBUG  ] [Atlas       ] Load </home/morris/.local/lib/python3.6/site-packages/kivy/data/images/defaulttheme.atlas>
[DEBUG  ] [Atlas       ] Need to load 1 images
[DEBUG  ] [Atlas       ] Load </home/morris/.local/lib/python3.6/site-packages/kivy/data/images/defaulttheme-0.png>
[DEBUG  ] [ImageSDL2   ] Load </home/morris/.local/lib/python3.6/site-packages/kivy/data/images/defaulttheme-0.png>
[INFO   ] [Base        ] Leaving application in progress...

Running the same example under 1.11.1 I see the camera image.
I have also tested this on an rpi4b running Buster and Kivy 2.0.0 with python 3.7.3 and KIVY_CAMERA=gi with the same results.
Interestingly I think this is a regression from RC2 as I recall that 2.0.0RC2 worked. (I haven't tried regressing to RC2 to check that though). I have also tested with several different USB cameras with the same results.

Did you see the error message?
[DEBUG  ] [Camera      ] Ignored <picamera> (import error)
 /home/morris/.local/lib/python3.6/site-packages/kivy/core/camera/camera_gi.py:10: PyGIWarning: Gst was imported without specifying a version first. Use gi.require_version('Gst', '1.0') before import to ensure that the right version gets loaded.

Did you see the error message?
[DEBUG  ] [Camera      ] Ignored <picamera> (import error)
 /home/morris/.local/lib/python3.6/site-packages/kivy/core/camera/camera_gi.py:10: PyGIWarning: Gst was imported without specifying a version first. Use gi.require_version('Gst', '1.0') before import to ensure that the right version gets loaded.

Yes, it is a warning (and it is ignored) and it does the same thing in 1.11.1 but still loads the Gstreamer/GI handler AFAIK.

Ok I tracked down where it broke... PR #7071 broke it.
If I revert that PR and apply PR #7049 it starts to work again.
(PR #7049 is needed otherwise I get a crash).

I found another bug, the start/stop doesn't do anything, it starts off running from the get go regardless of play being true or false. I'll try to fix this and submit a PR if I do. - Thanks all.


"Add New Cloud Volume" dialog does not restrict cloud tenants for non-admins users.

Hi guys, for restricted users that should have access only to owned cloud tenant there is ability to select cloud tenants during cloud volume provisioning. Even those that the user should not see. In my environment there is OpenStack Newton with v3 api as a Cloud Provider with cloud tenants synchronization. And Cinder as a Volume Storage Provider.

@ITD27M01 thanks
@miq-bot assign @lpichler

https://github.com/ManageIQ/manageiq/pull/15143
https://github.com/ManageIQ/manageiq/pull/15145

@lpichler
If rbac is tag-based filtering then this PRs is not the solution. By default tags are not used by users and this is a very difficult way to enable this.  Because you need to tag every element in the infrastructure for which user need to access.

Hi @lpichler
In the environment with miltiple OpenStack Regions ManageIQ display cloud tenant multiple times for each OpenStack Keystone region. In this way this sctring of code does not work for multi-region environments:
https://github.com/lpichler/manageiq/blob/fce2cbfd43bff2fc540424a458fbaa6c86557244/app/controllers/cloud_volume_controller.rb#L267
because hash value for the same tenant name get the last selected tenant id from CloudTenants array. And not all tenants are displayed. For correct work there should be some additional value for Cloud Tenant Region.

@lpichler but all this PRs and my overrides does not help to create volume from ManageIQ because of this piece of code from "def create" function:
          CloudVolume.create_volume(cloud_tenant.ext_management_system, options)
          add_flash(_("Creating %{volume} \"%{volume_name}\"") % {
            :volume      => ui_lookup(:table => 'cloud_volume'),
            :volume_name => options[:name]})

For cloud volumes ext_management_system is Cinder Manager but not Cloud Provider. In this way all may request for creating volumes is stuck in "creating" state becouse of wrong ems for this operation:

@ITD27M01 Thank you for your feedback.

If rbac is tag-based filtering then this PRs is not the solution for my issue. By default (out of the box) tags are not used by users and this is a very difficult way to enable it. Because you need to tag every element in the infrastructure for which user need to access - cloud tenants that does not accessible from web-interface, vms, created volumes...

RBAC is not only about tags, it is also about tenancy and other filters.
For using RBAC for Cloud entities (like CloudTenant(this is only in), and RBAC for other cloud objects like CloudVolumes,... is in FINE only ))

https://github.com/ManageIQ/manageiq/issues/14836#issuecomment-302893188
It is another issue I am preferring to create  GitHub issue and we can discuss it and do it globally.
https://github.com/ManageIQ/manageiq/issues/14836#issuecomment-302896014 :
Can you create GitHub issue for it ? with specification of you set up (which version Miq, OpenStack)
I tried it with OpenStack v3 and on the latest code base and cloud volumes have been created successfully.


WSL launching windows ssh.exe returns GetFileType as FILE_TYPE_PIPE

Your Windows build number:  (Type ver at a Windows Command Prompt)
Microsoft Windows [Version 10.0.17025.1000]

What you're doing and what's happening:  (Copy&paste specific commands and their output, or include screen shots)
This issue is not a bug, rather need confirmation.

steps to reproduce,

Launch WSL bash from cmd.exe
From WSL bash, launch windows ssh.exe client.
ssh.exe failed to allocate pty session because GetFileType(STD_INPUT_HANDLE) returns FILE_TYPE_PIPE.
since ssh.exe is launched from cmd.exe console, user expects it to return FILE_TYPE_CHAR.
FYI, ssh.exe need to have control over the console as it need to update console settings, move the cursor to anywhere as instructed by sshd side server component.

I think this is an expected behavior as the ssh.exe is launched from WSL and ssh.exe STDIN/OUT will be pipes to WSL.
Is there a way to make this work so that the launched windows ssh.exe can have control over the terminal?

For more information -
https://github.com/PowerShell/Win32-OpenSSH/issues/990
FYI, I am from Microsoft openssh team. You can ping me if required.

#2406 (message) etc