No push on mod_proxy_http2?

Was experimenting with mod_proxy_http2 and discovered that Push is disabled for this.
This is in both h2 and h2c proxy mode. Running a simple ngttpd server, and then proxying a request to that shows the incoming SETTINGS frame has SETTINGS_ENABLE_PUSH set to 0.
$ nghttpd -v --no-tls 8080
IPv4: listen <IP_ADDRESS>:8080
IPv6: listen :::8080
[id=1] [ 54.550] send SETTINGS frame <length=6, flags=0x00, stream_id=0>
          (niv=1)
          [SETTINGS_MAX_CONCURRENT_STREAMS(0x03):100]
[id=1] [ 54.550] recv SETTINGS frame <length=12, flags=0x00, stream_id=0>
          (niv=2)
          [SETTINGS_ENABLE_PUSH(0x02):0]
          [SETTINGS_INITIAL_WINDOW_SIZE(0x04):32767]

Is there a way of changing this? Or is it just that you haven't got round to coding that yet?
I would have thought one of the main use cases for proxying to a back end with HTTP/2 rather than HTTP/1.1 was to enable end to end push (though appreciate it can also be done by the back end setting link headers and mod_http2 reading these and then managing the push itself).

The preferred way is that the backend server announces such resources via 103 Early Hints intermediate responses or, oldskool, Link headers.
PUSH is not enabled on the backend connections, because those connections are re-used between different front-end connections. And not all of those have PUSH enabled. Additionally, the Cache Digest that mod_http2 maintains, e.g. "what I have already pushed on this connection", is not visible to the backend.
103 is a much superior way to announce PUSH resources to intermediates (and there is discussion if it is not superior for the browser as well).
Hope this explains things.
Tip: 103 responses are disabled in mod_http2 by default as early versions of some browsers did choke on it. Nowadays, that is no longer a problem. Use H2EarlyHints on to enable it.

Fair enough now that 103 is standardised (though support isn't great yet).
Does seem a little weird that the back end application server has to tell the front end web server to push a resource it might own, rather than push it directly itself. However, in other ways (for the reasons you have noted as well as other reasons) it is cleaner to do it this way, so can understand the reasoning.
Anyway, I think it's worth noting this restriction in the mod_proxy_http2 documentation in case anyone else tries to use this specifically for end-to-end Push.
I'd also question the benefit of mod_proxy_http2 and speaking HTTP/2 all the way through given this. Can't really see any benefit over HTTP/1.1 for back end connections for now to be honest, and plenty of downsides since support is a bit tricky at the moment. Since latency and bandwidth is typically less of a problems for these types of connections, end-to-end Push was the main thing I thought it would be useful for but even HTTP/1.1 can send 103 responses can't it? Maybe this will change in future as HTTP/2 becomes more widely supported and there is no reason not to use HTTP/2 on the back end but, for now, it seems of limited use. Though I do like that Apache is one of the few implementations that allow this, for anyone that does want to use it :-)
And just to clarify your final tip, I presume you mean 103 responses from back end systems are always processed by mod_http2 (to enable the Push) but, by default are then dropped rather than forwarding on to the client? So no matter what the setting of H2EarlyHints 103 can always be used for Push from the back end - is that correct? That's been my observation so far anyway.

Yes, 103 is always processed, but only send when enabled.
As to h2 on the backend: I agree to your reasoning. Latency and Bandwidth are often not an issue and h1 implementation is still more reliable. Notice that mod_proxy_http2 kept its 'experimental' status in httpd while mod_http2 has left it behind.

Thanks for clarifying all this.
Happy to close this then - unless you want to consider my point about updating the documentation for mod_proxy_http2 and close it then?

Leave this open, pls.

Added a section to the mod_proxy_http2 documentation in trunk.


not_allowed_token_type error response

Thank you for documenting these APIs! This is very helpful.
I've been attempting to use the users.admin.invite API but when I use my API token I'm getting a "not_allowed_token_type" error.  Have you seen this before?  I'm guessing I generated my token in an incorrect way so if you have any thoughts on where I should look to generate a new one I'd appreciate it!
Thanks!

Nevermind on this issue, I was also attempting to use a different undocumented API which would allow me to reactivate a user and got my wires crossed here.


Insufficient funds for gas * price + value

JsonRpcError: Insufficient funds for gas * price + value
    at JsonRpcError.ExtendableBuiltin (file:///C:/Users/Adami/AppData/Local/Programs/EmeraldWallet/resources/app.asar/app/index.js:23949:30)
    at new JsonRpcError (file:///C:/Users/Adami/AppData/Local/Programs/EmeraldWallet/resources/app.asar/app/index.js:23978:116)
    at file:///C:/Users/Adami/AppData/Local/Programs/EmeraldWallet/resources/app.asar/app/index.js:24015:19
    at <anonymous>

rel #828


Windows don't lose focus when switching workspace

When switching to a new workspace, windows on previous workspace don't lose focus.
Not completely sure if that is the issue but that is the assumption.
I'm taking discord as an example
Steps to reproduce:

Have discord open in a chat
Switch to a new workspace
Wait for a message to be sent in that chat

Expected outcome: A notification is sent
Noted outcome: The message gets marked as read and no notification is sent.

XWayland issue, focus another XWayland window to remove the focus from the previous.

fixed in f7174acc4850ac93feb291707de9d9861c9fab56


Feature request: GCD for floating-point

Surprisingly, I can't find any implementation of floating-point GCD for Swift, anywhere.
While there are implementations in other languages - Python has heaps - a lot of them gloss over the important detail of rounding.  And for those that don't, porting them to Swift too literally may introduce mathematical errors, depending on how the source language differs from Swift in its handling of reals.
Since this library already has a good GCD implementation for integers (which seems to be a prerequisite for a floating-point variant), perhaps it'd make sense to add a version for FloatingPoint?

It's not too hard to implement--the usual algorithms can be made to work--but I'm curious what you intend to use it for, since that might influence how we'd expose it.

Also, what do you expect to happen when one of the values isn't an integer?

My use case is for reverting NSImage's conversion of animation timing information (expressed as NSTimeInterval) back to its natural form (integer measures of counts over a timescale).  I want to simplify the fraction back to its natural form, which means finding the greatest common divisor (given a small amount of fudge allowance, to compensate from rounding errors introduced by AppKit).
e.g. if the duration of two frames is reported by NSImage as 0.06666666667 and 0.1333333333, I want to determine that the timescale is 15 and the frame durations are 1 and 2, respectively.
The fudge allowance is crucial by the very nature of floating point, which is what makes this notably less trivial than working with integers.

I think I might prefer to do that via two simpler operations:

convert floating-point to simplest rational approximation satisfying some error bound
find LCM of denominators

My intuition is that these are much more explicable building blocks than a magical GCD with fudge factor, but I'm open to being convinced.

I think that makes sense.  Simplifying integer fractions is a common need too.
But, that's essentially what I'm currently doing and it's maybe not perfect.  As two separate steps, the degree of approximation used in the conversion to integers is essentially arbitrary.  Ideally it'd be just enough - and no more - to produce a sufficiently simple fraction at the end.  e.g. 1/15 instead of 9/150.
Of course, there's seemingly always some degree of arbitrariness in this, because you have to pin down what a "sufficiently simple" fraction is.  But in some contexts that can have hints - e.g. for animations, as in my use case, it's much more likely that the denominator will be 15, 24, 25, 30, or 60, than any other numbers.  Especially larger numbers.

For this specific use, you can probably first multiply by 300 and call it a day if the result is sufficiently close to an integer, short-cutting all the rest.

That was my workaround initially, essentially (I used a million or thereabouts, not 300, but same idea).  It works pretty well but isn't perfect.


Reorganized install-guide

Haven't yet been given the vendor alias/email to preview these changes so hoping someone with authorization could preview how they look as well. (Flying totally blind and first time working with Markdown).
Brought "Quickstart (Write Your First Program)" into the Getting Started section, and restructured the section in general.
Also added the topicHref: libraries/index.md to the TOC.yml, because I noticed that page didn't appear in the sidebar dropdown.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: gillenhaalb sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Docs Build status updates of commit 6b09329:
:warning: Validation status: warnings

File
Status
Preview URL
Details

articles/install-guide/setup/index.md
:warning:Warning

Details

articles/install-guide/tryqonline.md
:warning:Warning

Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/index.md

[Warning] Author gibeck cannot be recognized in GitHub.

articles/install-guide/tryqonline.md

[Warning] Author gibeck cannot be recognized in GitHub.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 27bfae4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 3c09b0d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit cfa785f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 34ecbae:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 34ecbae:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit b534e86:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit b534e86:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit e8d6b3a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 4b53990:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit df1723b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit c557e61:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 439103e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/TOC.yml
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/quickstart.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/csharp.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/python.md
:white_check_mark:Succeeded

articles/install-guide/setup/classical-hosts/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/command-line.md
:white_check_mark:Succeeded

articles/install-guide/setup/index.md
:white_check_mark:Succeeded

articles/install-guide/setup/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/toc.yml
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-2017.md
:white_check_mark:Succeeded

articles/install-guide/setup/vs-editors/vs-code.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/install-guide/tryqonline.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@cgranade thanks for the helpful comments. I think I addressed them all, including updating the Visual Studio page to refer to 2017/2019 more accurately and consistently (though I left the file name as vs-2017).


Refactor AMP library resolving

AMP uses custom HTML tags for elements like iframes or embedded youtube videos. These elements each require a javascript to be loaded to be properly rendered by the browser.
The new class ArticleJSON::Export::AMP::CustomElementLibraryResolver resolves the custom tags to a list of javascript libraries which then can be included on the page.
By adding ArticleJSON::Export::AMP::Exporter#custom_element_tags the user can now get a list of all used libraries (e.g. to check if one should manually include an additional iframe library for an element used outside of the article).
By refactoring the logic like this, we now also no longer need to parse the AMP element before being able to get a list of all its required custom elements.
The specs for ArticleJSON::Export::AMP::Exporter.amp_libraries still pass (only some spacing had to be fixed). Therefore, the (tested) API of the class remains the same.
ArticleJSON::Export::AMP::Elements::Base.amp_library (was untested) has been removed and replaced with .custom_element_tags which now returns a list of all custom tags used by the element.

+1

we already discussed this with @towanda and @dsager when the first version was implemented. I prefer having the libraries close to where they are used and not in a central place.

After having tried to integrate the gem like this into our code, the current implementation caused some problems. The article content returned by the gem is normally integrated into a page which also contains other elements (e.g. a menu and in our case a paywall that uses an amp-iframe). With the current implementation, it hard to check if the gem already includes the iframe script (have to rely on regexes over the script tags). If it does, we wouldn't want to include the script again, but otherwise, we'll have to add it manually.
With the implementation proposed in this PR, we can 1) simply check the array of used custom tags and then 2) optionally use the CustomElementLibraryResolver to get additionally needed script tags.
Also, if we should get some other elements in the future which require a custom tag but are not Embed elements (e.g. ads or custom lists) it makes it easier if resolving the custom tags to their respective scripts is in a central location (because e.g. the amp-iframe might be required by multiple elements).
I also talked about this with @dsager before going down this road and we saw this as the most straight-forward implementation.

But wouldn't it have been enough to just collect the library names instead also rewriting how they are collected in the AMP embed class? This seems to be 50% of the change.

Not really, as we also will need this for adding ads (we will add support for this to the gem next week). Also, this way we can use the same library resolving from outside of the gem (e.g. for getting the script tag for our paywall).
And having to parse the whole element into a Nokogiri node (via type_specific_node) only to be able to see what library is needed and then storing the library in an instance variable as a side-effect of the node methods (e.g. youtube_node) seemed a bit confusing to me..

+1

When we initially discussed this I was in favor of having the element tags as the main reference for the libraries, instead of the script tags. Because it would be easier to use "from the outside", in case we need to check for the presence of elements. So I think this refactor is a good next step.
Given that @christofdamian didn't block or downvote this, I'll go ahead and merge?


fix(EMS-2556-2570): No PDF - Multiple contract policy - Total months of cover - decimal places

Introduction :pencil2:
This PR fixes an issue where the "Total months of cover" field of a no PDF application, would allow decimal points and cause a "problem with service" issue.
Resolution :heavy_check_mark:

Add a validation rule so that "Total months of cover" cannot be submitted with decimal points.
Add E2E test coverage.

Miscellaneous :heavy_plus_sign:

Bump depedencies.
Minor destructuring improvements.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (main-application-no-pdf@43cadc0). Click here to learn what that means.

Additional details and impacted files
@@                    Coverage Diff                     @@
##             main-application-no-pdf    #1696   +/-   ##
==========================================================
  Coverage                           ?   98.36%
==========================================================
  Files                              ?      469
  Lines                              ?     7829
  Branches                           ?      846
==========================================================
  Hits                               ?     7701
  Misses                             ?      126
  Partials                           ?        2

Flag
Coverage Δ

unit-test
98.36% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

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


Use System.Delegate in multicast thunk instead of OwningType

The multicast array is of type Delegate[] and we need to access it like
that.

I don't think this needs much reviewing - this code is stolen from Project N and I stole it wrong.


Adding a license, owners, and security file

Summary of Changes
Let's make this repo official with a license, owners, and a security notice!

/lgtm

/approve

/approved


meta-ibm: Enable Stateful DHCPv6 at factory reset

Enable Stateful DHCPv6 at factory reset configuration. Added WithoutRA flag in 60-phosphor-networkd-default.network.in to enable this by default.
A RA message(which has managed flag) is required to start the DHCPv6 client.
Now, after this change, the DHCPv6 client starts without RA message. There will not be any dependence on RA message to start the DHCPv6 client.
Tested By: After Reset BMC and server settings,
60-phosphor-networkd-default.network file's output.
[Match]
Type=ether
[DHCPv6]
WithoutRA=solicit         -->new entry
[Network]
DHCP=true
LinkLocalAddressing=True
IPv6AcceptRA=False
[DHCP]
ClientIdentifier=mac
UseDNS=true
UseDomains=true
UseNTP=true
UseHostname=true
SendHostname=true
[IPv6AcceptRA]
DHCPv6Client=true
Change-Id: I3f1414fff838182f55366bea26b1127e3aeeafe9

Enable Stateful DHCPv6 at factory reset configuration. Added WithoutRA flag in 60-phosphor-networkd-default.network.in to enable this by default.
A RA message(which has managed flag) is required to start the DHCPv6 client. Now, after this change, the DHCPv6 client starts without RA message. There will not be any dependence on RA message to start the DHCPv6 client.
Tested By: After Reset BMC and server settings, 60-phosphor-networkd-default.network file's output.
[Match] Type=ether [DHCPv6] WithoutRA=solicit -->new entry [Network] DHCP=true LinkLocalAddressing=True IPv6AcceptRA=False [DHCP] ClientIdentifier=mac UseDNS=true UseDomains=true UseNTP=true UseHostname=true SendHostname=true [IPv6AcceptRA] DHCPv6Client=true
Change-Id: I3f1414fff838182f55366bea26b1127e3aeeafe9

Please update the commit message here to reflect the changes implemented in this PR


[SPARK-9664] [SQL] Remove UDAFRegistration and add apply to UserDefinedAggregateFunction.

https://issues.apache.org/jira/browse/SPARK-9664

Merged build triggered.

Merged build started.

Test build #39968 has started for   PR 7982 at commit 2eb306e.

Merged build triggered.

Merged build started.

Test build #39969 has started for   PR 7982 at commit 0cc2287.

LGTM

Test build #39969 has finished for   PR 7982 at commit 0cc2287.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test build #39968 has finished for   PR 7982 at commit 2eb306e.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Thanks - merging.


Creating a Scrolling/Collapsing Menu?

Hello, first off I want to say this is great project!
I'm trying to recreate a "scrolling/collapsing" effect for my menu items, similar to this project: https://github.com/andreamazz/AMScrollingNavbar
I'm able to target pagingViewController.collectionView and animate it's frame/translation, but there is a gap of whitespace left behind. I'm guessing that I need to update the constraints, but I'm hitting a dead end.
Is there an example of this already being done? Thanks!

Thanks! I guess one option would be to set collection view as the titleView on the navigation item and updating the frame of the navigation bar. You could probably even reuse that framework then. You can check out the NavigationBarExample target for an example.
Does that work for you?

Ah sorry I didn't clarify, I actually have a separate nav bar that is fixed on top, and the pagingViewController is below it. And would like the collection view to translate behind my nav bar

Ah okay, I guess that’s the same as this one: #145. Have you tried doing something like I suggested there?

Got it working using what you suggested in #145, the scrollView contentOffset updates the topAnchor constraint of the collectionView, working great! Also had to add a reveal function for when the user starts scrolling the pagingView

Awesome 👌


Add a bot to show CF org members and teams in Backstage

Tanzu folks are experimenting with a backstage instances to keep track of codebases and who owns them. Could we add this bot as an org member? That will let us pull org membership info into backstage and try out cataloging a handful of CF codebases. If this starts to look good, and lots of CF codebases are cataloged, we can provide a community backstage instance.
Here's an example of catalog metadata associated with a codebase: https://github.com/cloudfoundry/notifications/blob/master/catalog/catalog-info.yaml

Merging with ToC quorum


Upgrade to Kotlin 1.4

We had some issues with duration apis. Let's get updated to Kotlin 1.4

For example:
java.lang.NoSuchMethodError: No virtual method getINFINITE()D in class Lkotlin/time/Duration$Companion; or its super classes
        at com.dropbox.android.external.store4.MemoryPolicy.<clinit>(MemoryPolicy.kt:70)
        at com.dropbox.android.external.store4.StoreDefaults.<clinit>(StoreDefaults.kt:24)
        at com.dropbox.android.external.store4.RealStoreBuilder.<init>(StoreBuilder.kt:90)
        at com.dropbox.android.external.store4.RealStoreBuilder.<init>(StoreBuilder.kt:87)
        at com.dropbox.android.external.store4.StoreBuilder$Companion.from(StoreBuilder.kt:64)

Working on a release today

We can close this issue, now 4.0.0-alpha-07 is out.

@NahroTo but it still unavailable in MavenCentral :(

@SteinerOk Yeah unfortunately. It's related to issue #215.


Add unittest covering warnings for unknown sources

Summary: Cover the test case where a warning message has been received in the server for an unknown source.
Type: Feature
Test Plan: Unittests.
Jira: RIALTO-463

https://jenkins.code.rdkcentral.com/job/github-triggered/48207/ started

Job for AI/job/AI_BUILDS/job/AI-Trigger-PullRequests started: https://pv-jen015.uk2.scp.bskyb.com/job/AI/job/AI_BUILDS/job/AI-Trigger-PullRequests/214/

https://jenkinsrdkm.cmf.code.rdkcentral.com/job/github-triggered/13570/ started

https://jenkinsrdkm.cmf.code.rdkcentral.com/job/build-component-platform/19968/ started.

build-brcm-refboard2 Console Log uploaded to Gist URL: https://gist.github.com/rdkcmf-jenkins/92fc6ad04fe1a7cf7b974bdbe4748f3f


Feat: 298 export import mastercrafted recipes

Description

Building on https://github.com/misterpotts/fabricate/pull/322 an addressing my own comments, I've created a skeleton structure for importing and exporting Mastercrafted Recipe books.
Benefit(s)

Easier time migrating from one module to the other

Changes in this PR

Introduce DataExchangeAPI t extract import/export from the FabricateAPI
Implement a MasterCrafted (currently no-op) and Fabricate Data Exchanger
Add a prompt on import to select the data import format
Add a prompton export to select the data export format

Screenshots (if appropriate)

Import dialogue

Export dialogue

Sorry for the long delay i just can't find the time


[VL] Update velox backend limitation docs for Spark3.4

What changes were proposed in this pull request?
Update velox backend limitation docs since we have improved the related behavior for Spark3.4.

We do not need overwrite spark class any more
We support both static and dynamic table write and won't raise exception if not support

How was this patch tested?
N/A

cc @JkSelf @PHILO-HE thank you

@ulysses-you do we need to update the supported configurations in spark 34 here ? It seems only support the compression.codec.

@JkSelf it seems you have an on going pr for that.. so I leave it


build: revert boringssl patch

Reverting https://github.com/envoyproxy/envoy-mobile/pull/470 which is a patch to boringssl
https://boringssl-review.googlesource.com/c/boringssl/+/37804 indicates that this patch was added to avoid a linker error, so given CI passes I assume it can be reverted.
Risk Level: low
Testing: n/a
Docs Changes: n/a
Release Notes: n/a
Part of https://github.com/envoyproxy/envoy/issues/23758
Fixes https://github.com/envoyproxy/envoy-mobile/issues/471

So the linker failures for this were downstream, so I don't think our tests here ever really validated it was an issue / fixed. I verified with my repro case https://github.com/keith/BoringSSLWeakRepro that it does still repro with HEAD BoringSSL. But the issue was only around when you used this with bitcode, which was deprecated starting with Xcode 14. So we might be able to merge this and just ignore this moving forward. I feel like it should be reproducible if you're using LTO, but my repro case doesn't work with just testing that quickly now.

Ok in that case let's try landing and seeing if it sticks.  If not we can roll back and revisit - I had an email drafted to boringssl folks to ask they bump priority but I wanted to repro first and this didn't :-P

I just rebased and commented again on my upstream patch, we'll see if it goes anywhere.


Update to 0.1.2

Update changelog and pubspec.yaml to version 0.1.2

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 88.51%. Comparing base (18a4ebb) to head (1020fbd).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #59   +/-   ##
=======================================
  Coverage   88.51%   88.51%
=======================================
  Files          56       56
  Lines         836      836
=======================================
  Hits          740      740
  Misses         96       96

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


What version of caffe2 are you using?

Your transcription of MNIST to C++ includes caffe/util/net.h and uses NetUtil class.
Neither of them are available in current caffe2 trunk on github?

It's part of this repo, see net.h and net.cc. I put it in the same namespace and similar include path, which is maybe a bit confusing. It's like an extension to the Caffe2 repo.

Ah! That makes your tutorial a tutorial in how to use your support library, rather than in how to use caffe2 ... Digging through the support library is actually much more illuminating than the "tutorial" MNIST file.

good point, I'll add that to the readme.


Dev testing: slow memory leak notified on 24h test

Looks like we are leaking in the ARMO Dev environment.
~100Mb per node agent per 6h

pprof-mem-kubecop-kubecop-ltrn9.pd.gz


Analyzer doesn't read stylecop.json.

Hello, sorry for bringing this one up again as I know it's been addressed a few times, but I'm having issues getting stylecop.json to be recognized by my project. Here's what I've tried:

Adding the file in quick actions and fixing the csproj manually by using the steps at https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/EnableConfiguration.md.
Changing the Build Action to be None, Additional Items, and Content; each time unloading and reloading the project. Unforunately, I haven't had success with any of them. I did notice that when I use Additional Items, the Quick Actions no longer suggest an option for me to generate a stylecop.json file for the project. With the other Build Actions, it gives me this suggestion.
Moving the <AdditionalItems /> element into its own <ItemGroup />.

In all cases I still get a quick action that suggests the fix which is to replace my header which looks like this:
// =======================================================================
// <copyright file="AnalyticsDataProvider.cs" company="LAMA, LLC">
// Copyright 2015 Lama, LLC
// </copyright>
// =======================================================================

To this:
// =======================================================================
// <copyright file="AnalyticsDataProvider.cs" company="PlaceholderCompany">
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
// =======================================================================

Here's the contents of my stylecop.json file:
{
  "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json"
  "settings": {
    "documentationRules": {
      "companyName": "LAMA, LLC",
      "copyrightText": "Copyright 2015 {companyName}. All rights reserved."
    }
  }
}

I'm using Visual Studio Community 2015, version 4.6.00081 and RC3 of the analyzer. Any ideas are appreciated, thanks!

Can you try AdditionalFiles instead of AdditionalItems?
When you double click on stylecop.json for your project in Solution Explorer, does it open the correct file?

Hello and thanks for the suggestion. Apologies, I meant to say AdditionalFiles in my original post. Here's what I've put in the csproj:
<ItemGroup>
    <AdditionalFiles Include="stylecop.json" />
  </ItemGroup>

When I double click stylecop.json in the solution explorer, it shows the correct file. It's adjacent to the csproj file.

I figured it out, it's because the "$schema" attribute has a syntax error after it's value (missing a comma). Thanks!

@DirtyPiece Thanks for following up. I opened #2029 to help address this for future users. :smile:

This issue still exists in .Net core projects.

@bpraveen4u can you file a new issue for the behavior you are observing?

This issue still exists in .Net core projects.

Issue resolved. It was because of stylecop.json not well formed. missing one flower braces '}'


Integration with Swagger 2 / Open API

We are considering using Swagger to generate API documentation and spring-cloud-contract for contract driven development.
There is an obvious similarity / overlap between spring-cloud-contract and Swagger 2 in that they both use a DSL to describe some element of an API.  spring-cloud-contract focuses on scenarios that an API must fulfill while Swagger generates a technical description of the data model + response codes (as described by @marcingrzejszczak in https://github.com/spring-cloud/spring-cloud-contract/pull/68#issuecomment-243740046)
The current flow to use spring-cloud-contract and Swagger is at a high level:

Define the API for swagger with the Open API DSL
Generate the API technical documentation with swagger
Define the API scenarios for spring-cloud-contract with the spring-cloud-contract DSL
Generate the tests / stubs with spring-cloud-contract

The 2 main problems are:

No validation of spring-cloud-contract definitions versus the Swagger API definitions. The spring-cloud-contract and Swagger API definitions are independent. It is possible to create spring-cloud-contract based contracts which inadvertently break a definition that was generated for Swagger.
Duplication of API definitions. A given API needs to be manually specified with two different DSLs, which overlap. This is tedious (and error prone as stated above)

It seems that spring-cloud-contract (or another spring project) is bound to extend its capability to encompass the full technical description and documentation of APIs through its DSL, this feeling is reinforced by enhancement request  https://github.com/spring-cloud/spring-cloud-contract/issues/21 which requires spring-cloud-contract to generate the controller based on the DSL. If this were the case then spring-cloud-contract would need to more fully define the API (e.g. fields, verbs, possibly return codes etc)
We'd love to hear about the short / long term strategy of spring-cloud-contract (or other upcoming spring projects) with respect to full API technical definition and documentation as currently implemented by Swagger 2:

Validation of the spring-cloud-contract /  OpenAPI DSLs. Is there a plan to somehow integrate spring-cloud-contract with Swagger 2 or the OpenAPI DSL that Swagger 2 uses to perform validation of the DSLs ?
Is there a plan for spring-cloud-contract to extend its functionality and fully describe an API and its documentation (https://github.com/spring-cloud/spring-cloud-contract/issues/21 ) seems to be a step towards this)

Thanks ...

Hello! Thanks for the introduction :)
let me focus on two last questions:

Validation of the spring-cloud-contract / OpenAPI DSLs. Is there a plan to somehow integrate spring-cloud-contract with Swagger 2 or the OpenAPI DSL that Swagger 2 uses to perform validation of the DSLs ?

We will be treating Swagger and its OpenAPI DSL in the same way as we will treat RAML and Pact. You'll be able to use their DSL to define scenarios. We will then convert their DSL into our DSL and then continue with test generation etc.

Is there a plan for spring-cloud-contract to extend its functionality and fully describe an API and its documentation (#21 ) seems to be a step towards this)

#21 would be done only to create a stub of a controller. Contracts are not schemas and never will be. We do not want to describe all possible fields inside a controller. In other words we don't want to replicate what Swagger does. We want to go with Postel's law and we completely don't care how the full model looks like (i.e. what fields it contains).

Thanks for the response @marcingrzejszczak, it makes sense :-)
I guess that OpenAPI will let us use vendor specific DSL which Swagger will ignore but which will be used by spring-cloud-contract to generate the various contract artifacts ?

Yes - instead of using the Groovy DSL you'll be able to use OpenAPI DSL. We will then convert it into our Groovy DSL and then convert those into tests and stubs.
Obviously we're counting on help with implementing this feature cause currently we have bigger priorities. Of course I can help with some guidance. So @BenDave - interested in filing a PR ? :D

That is very tempting :-)
We may have some folks interested in spending a bit of time on this,  I will have to get back to you on that ..

Ok! Feel free to ask!

Hi!
Is there any update on this?
I came across this thread, as we are currently into the same situation, planning to use OpenAPI and Spring Contract Verifier together.
May be we would be willing to contribute some time to this feature, though I confess, that after a glance in the github repositry I could not really understand how the code-generation stuff works.
This leads me to another question:
I stumbled across https://bitbucket.org/atlassian/swagger-request-validator, which has a submodule for RestAssured in the form of a filter. But unfortunately it looks like filters are not supported by RestAssuredMockMVC? I thought it might be a cheaper angle of attack to maybe extend the way the testcases are generated in order to offer an optional OpenAPI validation in the generated testst. Sure, this would only remove one "redundancy", the one of writing separate tests for the OpenAPI and the Contract but leaves the "redundancy" of writing two kinds of "specifications" the OpenAPI one and the Contract Verifier DSL specs.

Nope - no progress for now. You can check out this example - https://github.com/spring-cloud/spring-cloud-contract/blob/master/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverter.groovy It's pretty straightforward. You have to provide a conversion to a Collection and from it.

May be we would be willing to contribute some time to this feature, though I confess, that after a glance in the github repositry I could not really understand how the code-generation stuff works.

If you just do the conversion to/from Contract you don't have to touch the code generation. If you want to have your custom code generation then you could base your work on how org.springframework.cloud.contract.verifier.builder.JavaTestGenerator is working. Then you could just provide your own implementation and register it in spring.factories under org.springframework.cloud.contract.verifier.builder.SingleTestGenerator entry
Filters are not handled by MockMVC but you can use the EXPLICIT mode in SC-Contract to start RestAssured and send a real request.

... testcases are generated in order to offer an optional OpenAPI validation in the generated testst ...

What do you mean exactly by this? What is this additional optional OpenAPI validation?

My assumption was that the OpenAPI validation as done by swagger-request-validator via a RestAssured filter would be something, that not all users of Spring Contract Validator would want to use. So I thought one would provide this feature optional. Like "test, what was specified in the DSL" and (optionally) "check the request/response against an OpenAPI specification".
These thoughts were based on the assumption, that the verification would have to be initialized in the generated code part and not the custom baseClass. If it can be done in the baseClass, of course it would be totally up to the user of the framework.
I did not dig into the EXPLICIT mode yet, as maybe I misunderstood its intention. I will check.
Thanks for the support!

Hmm I don't think it's generic enough to consider putting in core :/ Here you have an example of working with context paths that require the EXPLICIT mode - https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html#_working_with_context_paths

@BenDave @markward-schubert @Fitzoh  I was thinking about this issue when working on this one https://github.com/spring-cloud/spring-cloud-contract/pull/227 and I have one gigantic problem with this compatibility. Swagger / Open API are schema based. They define a schema and possible responses for different response codes. Spring Cloud Contract is scenario based. For a single request you've got a single response. It's actually impossible to make those two work (you'd have to start keeping multiple Open API schema files for different status codes which obviously makes no sense).
I'm on the verge of closing that PR and both issues for RAML and Open API due to incompatibilities. What do you think about this?

Yeah, I was always a little bit curious about how those implementations were going to work out, there's a pretty big mismatch in how SCC and swagger/RAML work.
Regarding your comments on #227 about not including it due to the limitations, maybe it makes sense to release it separately as a community-ish project? You've got the plug-in interface for converting stuff now, maybe it makes sense to have some external converters that aren't going to have first class support?

Following the discussion here #227 it turns out that schema based solutions are not really suitable as input for Spring Cloud Contract. @Fitzoh the RAML thing will be moved to Spring Cloud Incubator.

Yes, that decision makes sense - thanks for looking into this ....

@marcingrzejszczak This might be worth checking out if this gets reopened at some point:
https://bitbucket.org/atlassian/swagger-mock-validator
And some info on how it works with Pact:
https://docs.pact.io/faq/convinceme.html#but-i-use-swaggeropenapi
https://github.com/pact-foundation/pact-specification/issues/28
cc @mefellows

Good idea @Fitzoh.
Broadly speaking, the two technologies offer up different things; one is really useful for documenting APIs, in particular providing a strong definition where the consumers are not well known, the other is well suited to integration tests and providing confidence for known consumers.
It seems there is a common but happy middle ground that people are constantly wanting - the ability to do both.
As a suggestion, I'd see how the mock validator goes and if it turns out people like it, one option could be to create a spring-cloud-contracts integration that does something similar, or even implement something similar into the core library.

Wanted to include a link to the other half of that project:
https://bitbucket.org/atlassian/swagger-request-validator
They have wiremock and restassured validators as well.

Thanks for the feedback! Looks interesting. However I think that the best place to make that integration would be on the atlassian side. Also it's a validator that the Swagger special tells the truth. This issue was about making the Swagger spec input for sc contract. So it's a little bit different thing. WDYT?

Hi, it might be a silly idea, but could you use the default values of the parameters for the input mock and the response examples for the validation of responses? In this way the swagger template would also serve as a data scenario.

There are community extensions to Spring Cloud Contract that support Swagger like https://github.com/SvenBayer/spring-cloud-contract-swagger and from what I know more are to come :)

There is also project to kind of merge openapi with spring cloud contracts: https://github.com/springframeworkguru/spring-cloud-contract-oa3#spring-cloud-contract-open-api-30-contract-converter


Whitespace in home directory path results in vm storage growth script failures

This happened in particular on Windows, but checks should be done to make sure that the problem is not present also on Mac or Linux. Please!
Got the following output in the window and it worried me because of the error message on the inability to create the disk. I had grown the disk in this peer to 200GB: it has enough disk space for growing. It seems this growth failed but the peer came up ok.
ringing machine 'default' up with 'hyperv' provider...
==> default: Verifying Hyper-V is enabled...
==> default: Verifying Hyper-V is accessible...
==> default: Importing a Hyper-V instance
    default: Creating and registering the VM...
    default: Successfully imported VM
    default: Configuring the VM...
==> default: Starting the machine...
==> default: Waiting for the machine to report its IP address...
    default: Timeout: 120 seconds
    default: IP: <IP_ADDRESS>
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: <IP_ADDRESS>:22
    default: SSH username: subutai
    default: SSH auth method: private key
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...

... SNIP ...

==> default: Running provisioner: cleanup...
Peer finished to up with following messages:
The system cannot find the path specified.
NEW-VHD : Failed to create the virtual hard disk.
The file extension for 'C:\Users\Alex' is invalid. Virtual hard disk for this operation must have a .vhd or .vhdx
extension.
At C:\Users\Alex O. Karasulu\.vagrant.d\gems\2.4.4\gems\vagrant-subutai-7.0.6\lib\vagrant-subutai\packer\script\create_
disk_and_attach.ps1:12 char:5
+     NEW-VHD -Dynamic $DiskPath -SizeBytes $($DiskSize*1073741824)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-VHD], VirtualizationException
    + FullyQualifiedErrorId : InvalidParameter,Microsoft.Vhd.PowerShell.Cmdlets.NewVhd

ADD-VMHardDiskDrive : Adding the device 'Microsoft:Hyper-V:Virtual Hard Disk' to
'subutai-peer_hypervcc_default_1540670236929_48310' failed.
At C:\Users\Alex O. Karasulu\.vagrant.d\gems\2.4.4\gems\vagrant-subutai-7.0.6\lib\vagrant-subutai\packer\script\create_
disk_and_attach.ps1:14 char:5
+     ADD-VMHardDiskDrive -vmname $vm.Name -path $DiskPath -ControllerT ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Add-VMHardDiskDrive], VirtualizationException
    + FullyQualifiedErrorId : OperationFailed,Microsoft.HyperV.PowerShell.Commands.AddVMHardDiskDrive

Hit ENTER to finish...

To test @jadilet's theory of the whitespace in the username being the issue, I changed the setting for vm storage to C:\Peers. Disk growth works perfectly when this setting is changed so we can presume you are right ... the problem with the disk growth script is the whitespace in the username.

Brought up a peer on Windows using hyperv:

Have tested on Debian via VirtualBox.
On Moday I will test this issue on Mac with a new user

Successfully brought a peer up:

But has got minor error with disk size
SUBUTAI_RAM : 4096
SUBUTAI_CPU : 1
SUBUTAI_ENV : master
DISK_SIZE : 200
BRIDGE : “en0”

pwd:
/Users/admin/untitled folder/Subutai-peers/subutai-peer_fdvdffdvfd

This issue is fixed.
Created an issue for the error:
https://github.com/subutai-io/vagrant/issues/135

Changed the names and vmstorage directory.
Brought successfully a peer up.
Fixed


Pecos killed on ranker training step

Description
The  training has been killed on this training step:
Data: Amazon-670k
Model: X-Transformer
[2022-12-01 21:38:23,019][pecos.xmc.xtransformer.model][INFO] - Start training ranker...
[2022-12-01 21:38:24,001][pecos.xmc.base][INFO] - Training Layer 0 of 4 Layers in HierarchicalMLModel, neg_mining=tfn..
[2022-12-01 21:39:05,191][pecos.xmc.base][INFO] - Training Layer 1 of 4 Layers in HierarchicalMLModel, neg_mining=tfn..
[2022-12-01 21:40:24,829][pecos.xmc.base][INFO] - Training Layer 2 of 4 Layers in HierarchicalMLModel, neg_mining=tfn..
[2022-12-01 21:43:25,293][pecos.xmc.base][INFO] - Training Layer 3 of 4 Layers in HierarchicalMLModel, neg_mining=tfn+man..

Environment
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.6 LTS
Release:	18.04
Codename:	bionic
Python 3.8.15
libpecos~=0.4.0
1 RTX A4500, 32 vCPU, and 250 GB RAM

What could it be? Is it possible to resume training from that stage?

Could you please provide the detailed training command line with parameters and error log/console prints? Thanks

Could you please provide the detailed training command line with parameters and error log/console prints? Thanks

Hello @weiliw-amz,
The training started running
problem = MLProblemWithText(X_text=X_text, Y=Y, X_feat=X)
model = XTransformer.train(problem,  train_params=train_params)

using params from Neurips XR-Transformer over Amazon-670k dataset.
The complete output is in nohup_out.txt, where the last lines are:
[2022-12-02 14:48:52,687][pecos.xmc.xtransformer.matcher][INFO] - -----------------------------------------------------------------------------------------
[2022-12-02 14:48:55,221][pecos.xmc.xtransformer.matcher][INFO] - Reload the best checkpoint from /tmp/tmps3u1fqd0
[2022-12-02 14:48:58,418][pecos.xmc.xtransformer.matcher][INFO] - Predict with csr_codes_next((463301, 32768)) with avr_nnz=320.0
[2022-12-02 14:48:58,419][pecos.xmc.xtransformer.module][INFO] - Constructed XMCTextTensorizer, tokenized=True, len=463301
[2022-12-02 15:19:11,990][pecos.xmc.xtransformer.model][INFO] - Constructed instance feature matrix with shape=(463301, 50768)
[2022-12-02 15:23:20,030][pecos.xmc.xtransformer.model][INFO] - Hierarchical label tree for ranker: [8, 256, 8192, 670091]
[2022-12-02 15:23:20,034][pecos.xmc.xtransformer.model][INFO] - Start training ranker...
[2022-12-02 15:23:21,157][pecos.xmc.base][INFO] - Training Layer 0 of 4 Layers in HierarchicalMLModel, neg_mining=tfn..
[2022-12-02 15:24:33,123][pecos.xmc.base][INFO] - Training Layer 1 of 4 Layers in HierarchicalMLModel, neg_mining=tfn..
[2022-12-02 15:27:13,856][pecos.xmc.base][INFO] - Training Layer 2 of 4 Layers in HierarchicalMLModel, neg_mining=tfn..
[2022-12-02 15:33:33,064][pecos.xmc.base][INFO] - Training Layer 3 of 4 Layers in HierarchicalMLModel, neg_mining=tfn+man..
run.sh: line 9: 2525311 Killed

As the process is terminated due to the consumption of all RAM (even with 250GB available),  and the XR-Transformer paper reported a p3.16xlarge instance (with 128GB) required to perform all the experiments, what am I missing?

This looks like an OOM issue. The results in the paper was obtained on p3.16xlarge which has 488GB CPU memory (the 128G you mentioned above is GPU memory). If you don't have access to large memory instances at the moment you can try to allocate a swap memory.


New MSMonitoring module

Fixes #11429
Status
In development
Description
New MSMonitoring module provides everything we need to perform monitoring task for MSPileup. The new class can be initialized with AMQ credentials, it starts MS monitoring thread which periodically will fetch MSPileup data (to be determined) and send it over to CMS Monitoring AMQ end-point.
Is it backward compatible (if not, which system it affects?)
YES
Related PRs
External dependencies / deployment changes

@vkuznet Valentin, before you continue working on this, note that all microservices define a cherrypy thread performing the service monitoring. It involves
a) fetch and upload data to wmstats
b) can potentially fetch and upload data to AMQ as well
Relevant service section can be found here:
https://gitlab.cern.ch/cmsweb-k8s/services_config/-/blob/preprod/reqmgr2ms-pileup/config.py#L93

Alan, this is a first draft of MSPileupMonitoring module which contains initial implementation of the logic. I need an initial review of the functionality in order to polish it further. Few things to note:

I decided to not use CherryPy thread as this module can run without it
I re-used daemon from MSManager where I added THR_FLAG to allow restart of the thread and ability to gracefully exit it. I suggest to put this functionality back to MSManager though but I decided to give you heads-up to review the implementation
I re-used uploadToAMQ method from src/python/WMCore/REST/HeartbeatMonitorBase.py module and I think if we'll have an intermediate class for AMQ, e.g. CMSMonitoring, then we can put it over there to share across different classes, e.g. make CMSMonitoring as a based class for them which will have this method. But so far I put it to MSPileupMonitoring.

Please make an initial review and provide your feedback, then I can proceed with this PR.

I strongly believe that monitoring task should not be tighten to CherryPy thread. Please review and decide, if you can convince me with real arguments why thread should be in CherryPy and what are the benefits I can put it over there. So far it only make WMCore depends deeper and deeper on Cherrypy for tasks which are not even remotely related to HTTP activity, e.g. Monitoring has nothing to do with HTTP (which CherryPy provides).

You are confusing things here.
A cherrypy thread is simply a mechanism to create another task (thread) that runs along with your service, where we define a specific interval to get that task executed. That is exactly what we need to have for this monitoring purpose, something that is probing the service and collecting monitoring information every amount of time.
I do acknowledge one pitfall on this implementation though, which is, if the service is down so is the monitoring thread. However, for that we have already a few other mechanism to either spot it or to restart the service (liveness probe, wmstats grace period).
If we move away of CherryPy and the future web framework does not provide a similar functionality, then yes, we need to have one specific service/thread for the monitoring purpose. For now, I see no strong reason why we should not use what is already used by all of the other services and that serves all our purposes.

Alan, I provided my feedback on implementation but I'll not insist on using standard library approach. If you feel comfortable with using cherrypy thread for that I can easily convert the code to use it. For that I need the following pieces:

currently WMCore/MicroService/CherryPyThreads/HeartbeatMonitor.py is delegating its job to HeartbeatMonitorBase from WMCore.REST.HeartbeatMonitorBase module, but
it is unclear who collect the data. I need to understand this since for MSPileup we need to fetch data from its backend. I implemented the appropriate method in this PR. So, you need to provide me concrete example how other MS service collect their data (if any) and send it over to specific destination (wmstats or CMS Monitoring). From what I inspect in a code I do not see that this is done anyhow.
I also do not have enough details to understand why do we need to send data to wmstats, please elaborate more on this, e.g. which data and in which data-format we should collect and send to  wmstats. In my view, we have robust CMS Monitoring infrastructure which can handle any data suited for monitoring. Why we should involve wmstats in monitoring tasks it is unclear to me.

Once I'll know all aforementioned details I can move forward with this PR.

Valentin, given that we already have the basic monitoring performed by the CherryPy thread and uploaded to WMStats, with this module:
https://github.com/dmwm/WMCore/blob/master/src/python/WMCore/REST/HeartbeatMonitorBase.py
I would suggest to put this development on hold and tackle other tickets first. We will likely need the development already done here though, because I fail to see how to add extra monitoring and push data to AMQ without further development in the microservices.
I think we now have all the pieces in place and we can start focusing on the actual algorithm for this microservice, to be addressed with the following 2 tickets:
https://github.com/dmwm/WMCore/issues/11426
https://github.com/dmwm/WMCore/issues/11428
Once those are covered, we can then get back to the auth/authz issue, the dashboard monitoring, and this extra/custom monitoring ticket.

Alan, I did not forgot about your original request, but it requires merge of this PR https://github.com/dmwm/WMCore/pull/11517 otherwise we'll get conflict in MSPileupTaskManager. Once you'll merge clean-up PR, then I can add requested features over here once I'll rebase the branch.

@amaltaro , please review this (only this) commit https://github.com/dmwm/WMCore/pull/11478/commits/93bec1154379a4d9d828c1e3384e81eb2e0841f6 It includes a first way how we may integrate MSpileupMonitoring into MSPileupTasks. It will be executed within each cycle and it will simplify MSPileupMonitoring code a lot (I can easily remove all daemon stuff in it). Another integration option will be to start MSPileupMonitoring as separate thread and run it along with MSPileup service. Please evaluate both options and let me know how to proceed. So far I'm in favor the first one, i.e. the one I just committed, since it will be yet another task and does not require additional thread management (and resources).

It will be executed within each cycle and it will simplify MSPileupMonitoring code a lot (I can easily remove all daemon stuff in it).

@vkuznet Valentin, I like this idea. This monitoring will be fairly static and there is no need to be monitoring pileups in any aggressive way. I made a couple of comments directly in that commit that you shared, hopefully you can see it.
But yes, just execute this AMQ monitoring task together with the other MSPileupTasks. Thanks

ok, then, I'll start cleaning up the code and we'll use it as yet another task (of course wiki will require the update too :)

Alan, please proceed with review. I adjusted code according to our recent zoom discussion. The corresponding PR for configuration (preprod branch) can be found over here: https://gitlab.cern.ch/cmsweb-k8s/services_config/-/merge_requests/196

Alan, during squash I made a mistake which put commits of code into commits of unit tests and unfortunately I do not know how to revert such thing (after the squash is done). To avoid further confusion, I squashed everything into single commit and let you know explicitly about it.
Said that, the code is ready for another review.


Fix munging of mysql/mariadb/oracle-mysql db types, fixes #38

#38

It turned out this was not actually a failure in the relationship mapping, but a failure of transformation of mysql to mariadb
This PR fixes the failure that happened with blog.blackfire.io.

Manual testing of my own mariadb and mysql projects worked fine, including the ddev pull platform


use consistent case

Thanks for the fix as well as all the reviews!
@bors r+

:pushpin: Commit 640ff8d5938ce38d8183ae544a66f3b9b01ac112 has been approved by weihanglo
It is now in the queue for this repository.

:hourglass: Testing commit 640ff8d5938ce38d8183ae544a66f3b9b01ac112 with merge f3de2de2c83d5b8b760ca5488890fb4370124e3c...

:sunny: Test successful - checks-actions
Approved by: weihanglo
Pushing f3de2de2c83d5b8b760ca5488890fb4370124e3c to master...


Make additional changes to the Enabling namedConstraints page

The Enabling namedConstraints page needs some additional work.
See comments in code and on this PR: https://github.com/prisma/docs/pull/2102

Also https://prisma-company.slack.com/archives/C5Z9TH6N9/p1628598128076300

We need to add the name and map arguments to the following page: https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#id
For the following attributes:
-@id
-@@id
-@unique
-@@unique
-@@index

@relation

I also added referential actions to @relation and the map argument to @default for Sqlserver (starting w. 2.30)


chore: running lint as pre-commit hook

Intent

Running lint as pre-commit hook

Checks
No PR (that involves a non-trivial code change) should be merged, unless all items below are confirmed!  If an urgent fix is needed - use a tar file.
Trivial code change

grfrr

lol - this was a test in the vscode UI window, didn't realise it was a live comment!


catkin_make error with glog

When` I catkin_make -j 4 ,I get the following output with a lot of errors:
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/utilities_unittest.cc:31:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/utilities_unittest.cc:32:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/utilities_unittest.cc:49:1: note: in expansion of macro ‘TEST’
TEST(utilities, InitGoogleLoggingDeathTest) {
^
make[3]: *** [src/signalhandler_unittest-signalhandler_unittest.o] Error 1
make[3]: *** Se espera a que terminen otras tareas....
src/symbolize_unittest.cc:46:17: error: ‘GFLAGS_NAMESPACE’ is not a namespace-name
using namespace GFLAGS_NAMESPACE;
^
src/symbolize_unittest.cc:46:33: error: expected namespace-name before ‘;’ token
using namespace GFLAGS_NAMESPACE;
^
In file included from src/symbolize_unittest.cc:41:0:
src/symbolize_unittest.cc: In static member function ‘static void Test_Symbolize_Symbolize::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:96:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, Symbolize) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:96:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, Symbolize) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/symbolize_unittest.cc:34:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/symbolize_unittest.cc:41:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:96:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, Symbolize) {
^
src/symbolize_unittest.cc: In static member function ‘static void Test_Symbolize_SymbolizeWithDemangling::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:119:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, SymbolizeWithDemangling) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:119:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, SymbolizeWithDemangling) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/symbolize_unittest.cc:34:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/symbolize_unittest.cc:41:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:119:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, SymbolizeWithDemangling) {
^
make[3]: *** [src/utilities_unittest-utilities_unittest.o] Error 1
src/demangle_unittest.cc:46:17: error: ‘GFLAGS_NAMESPACE’ is not a namespace-name
using namespace GFLAGS_NAMESPACE;
^
src/demangle_unittest.cc:46:33: error: expected namespace-name before ‘;’ token
using namespace GFLAGS_NAMESPACE;
^
src/symbolize_unittest.cc: In static member function ‘static void Test_Symbolize_SymbolizeStackConsumption::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:260:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, SymbolizeStackConsumption) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:260:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, SymbolizeStackConsumption) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/symbolize_unittest.cc:34:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/symbolize_unittest.cc:41:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:260:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, SymbolizeStackConsumption) {
^
In file included from src/demangle_unittest.cc:41:0:
src/demangle_unittest.cc: In static member function ‘static void Test_Demangle_CornerCases::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/demangle_unittest.cc:66:1: note: in expansion of macro ‘TEST’
TEST(Demangle, CornerCases) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/demangle_unittest.cc:66:1: note: in expansion of macro ‘TEST’
TEST(Demangle, CornerCases) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/demangle_unittest.cc:34:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/demangle_unittest.cc:41:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/demangle_unittest.cc:66:1: note: in expansion of macro ‘TEST’
TEST(Demangle, CornerCases) {
^
src/symbolize_unittest.cc: In static member function ‘static void Test_Symbolize_SymbolizeWithDemanglingStackConsumption::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:278:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, SymbolizeWithDemanglingStackConsumption) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:278:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, SymbolizeWithDemanglingStackConsumption) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/symbolize_unittest.cc:34:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/symbolize_unittest.cc:41:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/symbolize_unittest.cc:278:1: note: in expansion of macro ‘TEST’
TEST(Symbolize, SymbolizeWithDemanglingStackConsumption) {
^
src/demangle_unittest.cc: In static member function ‘static void Test_Demangle_Clones::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/demangle_unittest.cc:83:1: note: in expansion of macro ‘TEST’
TEST(Demangle, Clones) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/demangle_unittest.cc:83:1: note: in expansion of macro ‘TEST’
TEST(Demangle, Clones) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/demangle_unittest.cc:34:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/demangle_unittest.cc:41:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/demangle_unittest.cc:83:1: note: in expansion of macro ‘TEST’
TEST(Demangle, Clones) {
^
src/demangle_unittest.cc: In static member function ‘static void Test_Demangle_FromFile::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/demangle_unittest.cc:105:1: note: in expansion of macro ‘TEST’
TEST(Demangle, FromFile) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/demangle_unittest.cc:105:1: note: in expansion of macro ‘TEST’
TEST(Demangle, FromFile) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/demangle_unittest.cc:34:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/demangle_unittest.cc:41:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/demangle_unittest.cc:105:1: note: in expansion of macro ‘TEST’
TEST(Demangle, FromFile) {
^
src/demangle_unittest.cc: In function ‘int main(int, char**)’:
src/demangle_unittest.cc:128:43: error: ‘ParseCommandLineFlags’ was not declared in this scope
ParseCommandLineFlags(&argc, &argv, true);
^
src/demangle_unittest.cc:128:43: note: suggested alternative:
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/demangle_unittest.cc:34:
/usr/local/include/gflags/gflags.h:346:31: note:   ‘gflags::ParseCommandLineFlags’
extern GFLAGS_DLL_DECL uint32 ParseCommandLineFlags(int argc, char** argv, bool remove_flags);
^
src/logging_unittest.cc:64:17: error: ‘GFLAGS_NAMESPACE’ is not a namespace-name
using namespace GFLAGS_NAMESPACE;
^
src/logging_unittest.cc:64:33: error: expected namespace-name before ‘;’ token
using namespace GFLAGS_NAMESPACE;
^
src/logging_unittest.cc: In function ‘int main(int, char**)’:
src/logging_unittest.cc:180:43: error: ‘ParseCommandLineFlags’ was not declared in this scope
ParseCommandLineFlags(&argc, &argv, true);
^
src/logging_unittest.cc:180:43: note: suggested alternative:
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/logging_unittest.cc:33:
/usr/local/include/gflags/gflags.h:346:31: note:   ‘gflags::ParseCommandLineFlags’
extern GFLAGS_DLL_DECL uint32 ParseCommandLineFlags(int argc, char** argv, bool remove_flags);
^
In file included from src/logging_unittest.cc:58:0:
src/logging_unittest.cc: In static member function ‘static void Test_DeathNoAllocNewHook_logging::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:297:1: note: in expansion of macro ‘TEST’
TEST(DeathNoAllocNewHook, logging) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:297:1: note: in expansion of macro ‘TEST’
TEST(DeathNoAllocNewHook, logging) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/logging_unittest.cc:33:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/logging_unittest.cc:58:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:297:1: note: in expansion of macro ‘TEST’
TEST(DeathNoAllocNewHook, logging) {
^
src/logging_unittest.cc: In function ‘void TestRawLogging()’:
src/logging_unittest.cc:309:3: error: ‘FlagSaver’ was not declared in this scope
FlagSaver saver;
^
src/logging_unittest.cc:309:3: note: suggested alternative:
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/logging_unittest.cc:33:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
src/logging_unittest.cc:309:13: error: expected ‘;’ before ‘saver’
FlagSaver saver;
^
src/logging_unittest.cc: In function ‘void LogWithLevels(int, int, bool, bool)’:
src/logging_unittest.cc:364:3: error: ‘FlagSaver’ was not declared in this scope
FlagSaver saver;
^
src/logging_unittest.cc:364:3: note: suggested alternative:
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/logging_unittest.cc:33:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
src/logging_unittest.cc:364:13: error: expected ‘;’ before ‘saver’
FlagSaver saver;
^
make[3]: *** [src/symbolize_unittest-symbolize_unittest.o] Error 1
In file included from src/logging_unittest.cc:58:0:
src/logging_unittest.cc: In static member function ‘static void Test_DeathRawCHECK_logging::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:437:1: note: in expansion of macro ‘TEST’
TEST(DeathRawCHECK, logging) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:437:1: note: in expansion of macro ‘TEST’
TEST(DeathRawCHECK, logging) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/logging_unittest.cc:33:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/logging_unittest.cc:58:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:437:1: note: in expansion of macro ‘TEST’
TEST(DeathRawCHECK, logging) {
^
make[3]: *** [src/demangle_unittest-demangle_unittest.o] Error 1
src/logging_unittest.cc: In static member function ‘static void Test_DeathSTREQ_logging::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:587:1: note: in expansion of macro ‘TEST’
TEST(DeathSTREQ, logging) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:587:1: note: in expansion of macro ‘TEST’
TEST(DeathSTREQ, logging) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/logging_unittest.cc:33:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/logging_unittest.cc:58:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:587:1: note: in expansion of macro ‘TEST’
TEST(DeathSTREQ, logging) {
^
src/logging_unittest.cc: In static member function ‘static void Test_CheckNOTNULL_Simple::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:597:1: note: in expansion of macro ‘TEST’
TEST(CheckNOTNULL, Simple) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:597:1: note: in expansion of macro ‘TEST’
TEST(CheckNOTNULL, Simple) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/logging_unittest.cc:33:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/logging_unittest.cc:58:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:597:1: note: in expansion of macro ‘TEST’
TEST(CheckNOTNULL, Simple) {
^
src/logging_unittest.cc: In static member function ‘static void Test_DeathCheckNN_Simple::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:608:1: note: in expansion of macro ‘TEST’
TEST(DeathCheckNN, Simple) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:608:1: note: in expansion of macro ‘TEST’
TEST(DeathCheckNN, Simple) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/logging_unittest.cc:33:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/logging_unittest.cc:58:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:608:1: note: in expansion of macro ‘TEST’
TEST(DeathCheckNN, Simple) {
^
src/logging_unittest.cc: In static member function ‘static void Test_SafeFNMatch_logging::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:868:1: note: in expansion of macro ‘TEST’
TEST(SafeFNMatch, logging) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:868:1: note: in expansion of macro ‘TEST’
TEST(SafeFNMatch, logging) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/logging_unittest.cc:33:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/logging_unittest.cc:58:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:868:1: note: in expansion of macro ‘TEST’
TEST(SafeFNMatch, logging) {
^
src/logging_unittest.cc: In static member function ‘static void Test_Strerror_logging::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:1043:1: note: in expansion of macro ‘TEST’
TEST(Strerror, logging) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:1043:1: note: in expansion of macro ‘TEST’
TEST(Strerror, logging) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/logging_unittest.cc:33:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/logging_unittest.cc:58:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:1043:1: note: in expansion of macro ‘TEST’
TEST(Strerror, logging) {
^
src/logging_unittest.cc: In static member function ‘static void Test_UserDefinedClass_logging::Run()’:
src/googletest.h:177:25: error: ‘FlagSaver’ was not declared in this scope
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:1209:1: note: in expansion of macro ‘TEST’
TEST(UserDefinedClass, logging) {
^
src/googletest.h:177:25: note: suggested alternative:
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:1209:1: note: in expansion of macro ‘TEST’
TEST(UserDefinedClass, logging) {
^
In file included from src/glog/logging.h:86:0,
from src/utilities.h:82,
from src/logging_unittest.cc:33:
/usr/local/include/gflags/gflags.h:277:23: note:   ‘gflags::FlagSaver’
class GFLAGS_DLL_DECL FlagSaver {
^
In file included from src/logging_unittest.cc:58:0:
src/googletest.h:177:35: error: expected ‘;’ before ‘fs’
static void Run() { FlagSaver fs; RunTest(); }
^
src/logging_unittest.cc:1209:1: note: in expansion of macro ‘TEST’
TEST(UserDefinedClass, logging) {
^
make[3]: *** [src/logging_unittest-logging_unittest.o] Error 1
make[2]: *** [glog_catkin/glog_src-prefix/src/glog_src-stamp/glog_src-build] Error 2
make[1]: *** [glog_catkin/CMakeFiles/glog_src.dir/all] Error 2
make[1]: *** Se espera a que terminen otras tareas....
make: *** [all] Error 2
Invoking "make -j 4"  failed
Any idea why this happens? I'm currently running ubuntu 14.04

Ubuntu 14.04 is very old. Please update.


Add HTML page titles and descriptions for roc-lang.org/examples and everything under it.

Perhaps those can be added to the pageData Dict here but I'm not sure...

@Anton-4  I don't think it works as intended.
https://www.roc-lang.org/examples/HelloWorld/README.html
<title>README.html</title><meta  name="description" content="Example of README.html in the Roc programming language."><

https://www.roc-lang.org/examples/
<title>index.html</title><meta  name="description" content="Example of index.html in the Roc programming language.">

Haha, good catch, I'll fix that.


Reduce memory usage

We've been experimenting with using the PassivePy project in a larger research/practice project: https://github.com/SuffolkLITLab/FormFyxer/
But we've run into an issue with memory usage. We did a few experiments and have found that using import en_core_web_lg and then en_core_web_lg.load() directly instead of passing a string can reduce memory usage by 60%.
We're also hoping to further reduce memory usage by being able to import just one copy of the nlp object for the multiple places we'll be using it, since this isn't a native feature of spacy and we might end up with this passivepy object being created in multiple threads.
If this PR isn't welcome, we can fork--just wanted to see if we can work to get this upstream, since this is a really nice implementation otherwise!
See our internal discussion here: https://github.com/SuffolkLITLab/FormFyxer/pull/70

Per Jonathan:

The standard uwsgi setup is one process, six threads (cores).
I would recommend loading your module from a module that is pre-loaded, so that the import happens when the web application (re)starts.
However, even if you loaded the module with an imports block in an interview, that might not make a difference, because as far as I can tell by doing experiments, module loading that happens during an HTTP request seems to affect the whole process and not just a single thread within a process.
The uwsgi process loads docassemble.webapp.run, which contains:
from docassemble.webapp.server import app as application
if name == "main":
application.run(host='<IP_ADDRESS>')
During the first line, docassemble add-on modules are imported, because this line runs all the code in docassemble.webapp.server, and that includes the import_necessary() function. So the importing of add-on modules happens before application.run(), which is what actually runs the Flask loop that listens for connections.
How memory gets handled is something I don't fully understand. I have heard that memory is shared until it is modified, after which there is a separate copy. But I don't know if that applies to process forking and not threads.


add more perl versions

oops, I'll drop 5.8.0
Bareword found where operator expected at - line 132, near "$fh JSON::PP::encode_json"
	(Missing operator before JSON::PP::encode_json?)
Perl v5.8.1 required--this is only v5.8.0, stopped at - line 190.
BEGIN failed--compilation aborted at - line 190.
Compilation failed in require at - line 49.```

https://github.com/shogo82148/actions-setup-perl/pull/10/checks?check_run_id=224850351#step:3:4647

https://github.com/shogo82148/actions-setup-perl/pull/10/checks?check_run_id=224898656#step:3:4626
https://github.com/perl-carton/carton/blob/d7fcb61aaa908e033cf3f66f53fbe9e46743978a/cpanfile#L5
Carton requires perl 5.8.5

perl 5.14.4 build fails with Makefile:222: *** missing separator.  Stop..
and its Makefile.
#
# Makefile to build perl on Windows using Microsoft NMAKE.
# Supported compilers:
#	Microsoft Visual C++ 6.0 or later
#	Windows SDK 64-bit compiler and tools
#
# This is set up to build a perl.exe that runs off a shared library
# (perl514.dll).  Also makes individual DLLs for the XS extensions.
#

I need NMAKE.

perl 5.24 builds work well, but perl 5.22 builds fail.
gave up :(
start build
Makefile:255: *** missing separator.  Stop.
#############################################################
###                                                       ###
###                     DMAKE WARNING                     ###
###                                                       ###
###  Do not use dmake.exe utility as it is no longer      ###
###  part of Strawberry Perl, use gmake.exe instead!      ###
###                                                       ###
###  If you have troubles with CPAN client delete:        ###
###  %USERPROFILE%\AppData\Local\.cpan\CPAN\MyConfig.pm   ###
###                                                       ###
#############################################################
Failed to build at build-perl-win.pl line 90.
##[error]Process completed with exit code 1.


param: fix potential nullptr dereferencing on param import

NuttX 7.28 seemed to handle this gracefully, but officially passing NULL as '%s' argument results in undefined behavior, and with 7.29 leads to a hardfault.
This happens on configs with flash-based params, on the first unsuccessful import attempt.

That quick debugging is impressive! Thanks for looking into it 😃