help-docs: Update search for messages article about "group-pm-with".

Updates the help center article on searching for messages to have the correct format for the "group-pm-with" operator.
Also, reorders the list so that the private message searches are all together.
See relevant CZO conversation.

Notes:

Would it make sense to add a section after Excluding messages for combining operators to cover the use case of using the "group-pm-with" operator multiple times to search for group private messages with more than one person, but not exclusively with those specific users?

I moved the streams:public operator to the end of the list because I felt like it stands out more there.

Screenshots and screen captures:

Updated full list of operators
Current documentation

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

The screenshot looks good to me.
What do you think about adding something like this to is:public, to clarify why you'd want to use it?

... in the organization, not only streams you are subscribed to.

I was also considering whether we should add explicit category labels to the list, since it's currently implicitly organized by category. But I wasn't sure I could come up with helpful labels for all the groupings.

Updates:

Added this clarification for streams:public operator description. This is in both commits.
Added a second commit that does some larger revisions on the page.

I was also considering whether we should add explicit category labels to the list, since it's currently implicitly organized by category. But I wasn't sure I could come up with helpful labels for all the groupings.

I had a similar thought, but when I started adding headers, I felt like the whole page needed to be adjusted a bit :sweat_smile:. I put those changes in a second commit, so it's easy enough to drop. I'm putting in screenshots of the page for each commit below.
Also I thought that @alya  might have some thoughts on how to clean-up or adjust that second commit to be a bit more what we're looking for. Or to address this idea that came up on CZO.
Screenshots:
Current documentation

Commit 1 - fixes the error and makes small change to list order

Commit 2 - adds categories to list and reworks first section

Merged, thanks @laurynmm!


refactor: Stop using the deprecated keyCode

https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode

:+1:
One suggestion: instead of keeping a mix of code and key constants in one single KEYS object. How about splitting into KEYS and KEY_CODES?

As we discussed privately, we don't want to migrate from key when not needed. We want to retain correctly handling locale-specific layouts.

@ad1992 can you explain what do you mean by breaking? Is it a regression from production? If so, then it's not a problem with using key, rather something introduced in this PR.


Refresh token won´t work

When I use your mendeley-api-python-example and the access token gets expired I expected the access token gets refreshed automatically, but it won´t.
So here in are the steps to reproduce:

install and run the mendeley-api-python-example
wait until the token gets expired (1h)
refresh website

expected result
the access_token will be refreshed with the refresh_token
actual result
TokenExpiredError
expected fix: using MendeleyAuthorizationCodeTokenRefresher
I expected to fix this bug by using MendeleyAuthorizationCodeTokenRefresher in mendeley-example.py#L101
So I change the method to:
def get_session_from_cookies():
	authenticator = MendeleyAuthorizationCodeAuthenticator(mendeley, session['state'])
	refresher = MendeleyAuthorizationCodeTokenRefresher(authenticator)
	return MendeleySession(mendeley, session['token'], refresher=refresher)

actual result
TokenExpiredError
and log: No new refresh token given. Re-using old.
possible fix in MendeleyAuthorizationCodeAuthenticator
the problem is oauth.refresh_token try to find a refresh token his object, but because the OAuth2Session object is recreated this token must be passed explicit:
--- auth.py	(revision )
+++ auth.py	(revision )
@@ -104,7 +104,7 @@
         self.redirect_uri = authenticator.mendeley.redirect_uri

     def refresh(self, session):
-        oauth = OAuth2Session(client=self.client, redirect_uri=self.redirect_uri, scope=['all'])
+        oauth = OAuth2Session(client=self.client, redirect_uri=self.redirect_uri, scope=['all'], token=session.token)
         oauth.compliance_hook['access_token_response'] = [handle_text_response]

         session.token = oauth.refresh_token(self.token_url, auth=self.auth)

This should be fixed the bug
regards,
david

David,
Have you been able to run this code successfully?

Is this still an issue or can I close this?

@MendeleyStack: Rather than "closing" this, I suggest you make his edits to the source so we can all benefit downstream. The problem is easily replicable and easily solved, but only if you have credentials to fix the codebase.
Alternatively, please provide an alternative method for auto-refreshing expired tokens.
Thanks!

I dont know if it is related, but very regularly I get the following error:
ile \"/var/task/mendeley/auth.py\", line 31, in authenticate
    token = oauth.fetch_token(self.token_url, auth=self.auth, scope=['all'])
  File \"/var/task/requests_oauthlib/oauth2_session.py\", line 364, in fetch_token
    r = hook(r)
  File \"/var/task/mendeley/auth.py\", line 12, in handle_text_response
    if rsp.headers['content-type'] == 'text/plain':
  File \"/var/task/requests/structures.py\", line 52, in __getitem__
    return self._store[key.lower()][1]
KeyError: 'content-type'

I authenticate using:
mendel = Mendeley(CLIENT_ID, CLIENT_SECRET)
session = mendel.start_client_credentials_flow().authenticate()\

But I imagine the error happens whenever the token expires. How to fix it?


Stricter pattern matching for imports

_re_import now has stricter matching conditions for imports, so that it will not match from xxxx without the following import. This prevents code blocks that include things like
query="""
select *
from database
"""

from running when generating docs due to the misclassification of it being imports.
This can be a conner case, but the stricter condition would not miss any legitimate imports so it shouldn't hurt anything.

Thanks!


electron_20: mark EOL

Its support ended on February 6, 2023.
This breaks electron-fiddle. cc @andersk
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Shall we backport the electron-fiddle update first?

Currently electron-fiddle isn’t in the release-22.11 branch at all.

I think we can defer the backport until there are vulnerabilities reported in electron 20.

Wait. Are you sure Electron 20 is EOL? It’s still listed as supported at https://www.electronjs.org/docs/latest/tutorial/electron-timelines#timeline and the branch is still getting commits.
It’s listed as EOL at the third-party index https://endoflife.date/electron, but I think that’s just incorrect.

It’s listed as EOL at the third-party index https://endoflife.date/electron, but I think that’s just incorrect.

I filed an issue about that: https://github.com/endoflife-date/endoflife.date/issues/2496


Binary Indexed (Fenwick) Trees in C++

Feature ✅
Description

Implementation of Fenwick trees to answer multiple queries on an array fast.
Checklist:

[*] I have read the project guidelines.
[*] I have checked all the existing projects, before submitting a new project issue.
[*] This issue will be meaningful for the project.
[*] I will contribute more in future

@pratik-choudhari can you assign this issue to me.

I can do this in java. Can you assign me.


[zstd] update to 1.4.9

Fixes #16642
Based on #16666
Update zstd to 1.4.9: https://github.com/facebook/zstd/releases/tag/v1.4.9
no changes in triplet support. tested as an install dependency for libarchive on x86-windows and x64-windows.
There's a good chance build will fail on cmake test_port like #16860 and #16845

@Thieum ,Thank you for your contribution, can you take a look:
config-x86-windows-dbg-out.log

@JonLiu1993 applying the previous patch to export the missing files did the work, thanks a lot for your guidance!


feat(store,world): broaden ResolvedTableConfig and ResolvedStoreConfig

done in https://github.com/latticexyz/mud/pull/2427


cut error "Git: the following file has staged content different from both the"

Version: 1.47.0 (user setup)
Commit: d5e9aa0227e057a60c82568bf31c04730dc15dcd
Date: 2020-07-09T08:01:16.801Z
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Windows_NT ia32 10.0.18363
Steps to Reproduce:
(I could not reproduce this, probably it has only occured due to a renaming of parent folder, the error message is cut anaway)

In terminal, with git installed, open a new git folder, start it with git init (or use the Source Control button "Initialize Repository") and use for example: git clone "https://github.com/redhat-developer/vscode-java.git"
git add --all > the whole folder is added to the stage.

Change a file slightly (or just saving it again should already be a change I think). In my case, I changed "Additional Informations" to "Additional Information"

If you now just want to unstage all again:

cut error message "Git: the following file has staged content different from both the":

press open git log, in the log we see now the uncut error message at the bottom.

git for-each-ref --sort -committerdate --format %(refname) %(objectname)
git remote --verbose
git config --get commit.template
git branch
git rm --cached -r -- d:\Stack Overflow\vscode_git\vscode-java
error: the following file has staged content different from both the
file and the HEAD:
vscode-java
(use -f to force removal)

Does this issue occur when all extensions are disabled?: Untested, but no of course, as the error refers to git in the message, thus the error only occurs when using git, which is built-in. Git version 2.27.0

Why are you trying to stage an entire git repository inside another repository?

The main reason for this is a mistake, I am still a clear biginner at git, even after a couple of tutorials and quite a few first applications. The reason here is that I have cloned the repo from github into a folder that I had mistakenly initialized as repo right before cloning. I stayed in that parent folder into that I had cloned. After cloning, the structure was like "vscode_git\vscode-java" and I still was in the "vscode_git" directory. Now I found that I could not effectively add and commit a file, as it was then a file of the subdirectory "vscode-java". The only way to see the files in the staging was to add all in one, using git add . / git add -A / git add --all.  This was nothing I wanted to do, it was more during testing, what is wrong. I have finally understood my mistake, the pull request is done now, and this question here is only about the cut message text. It is not that important anymore what I actually wanted to do here, I guess. One might change the message in these cases to a hint like "Please check if you are in the right git directory, you might be in a parent or sub directory." or something like that of course. If I am not mistaken again here...
did not change the folder to the the co

Got it. We try our best to forward git's messages to the user, but sometimes git itself wrongly formats the message, making it really hard. That's why the Open Git Log button is there, so you actually get to see the entire message. Closing this as designed.

I understand it is a formatting issue of git, but this is not entirely true. They simply insert a linebreak here to have a better output in the git log, which is nothing impossible to track. vscode will probably have this again elsewhere, that is why I would rather not close this "as designed". To a new user, it is also not even clear that she can look at the git log to see the full error message, though it may seem clear to a professional.


add nodelifecycle controller

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind bug
/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage

/kind feature
What this PR does / why we need it:
As we discussed in the community meeting, nodelifecycle controller will be managed in yurt-manager controller and disabled in kube-controller-manager in order to manage pods eviction easily.
and the following two features are included in this pr:

add nodelifecycle controller
don't mark pods not ready when node has pod binding annotation

Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

Does this PR introduce a user-facing change?

other Note

Hi rambohe-ch, I review this code for a long time, it seems that have no problems, but for insurance reasons, shall we organize a code review meeting, from you to show us the detail of the code, it can improve the quality of code.

Hi rambohe-ch, I review this code for a long time, it seems that have no problems, but for insurance reasons, shall we organize a code review meeting, from you to show us the detail of the code, it can improve the quality of code.

@JameKeal Thanks for your suggestion. I think maybe it's a good idea to introduce this pull request in a community meeting.

/lgtm

Fixes #1713

Should we disable node lifecycle controller in kube-controller-manager in OpenYurt v1.4？

Should we disable node lifecycle controller in kube-controller-manager in OpenYurt v1.4？

@crazytaxii yes, we need to disable the nodelifecycle controller in kube-controller-manager component. and the tip has been added in the OpenYurt setup tutorial. the link is here:  https://openyurt.io/docs/installation/manually-setup#2-prerequisites-for-installing-the-openyurt-control-plane

To adapt to the complex network scenarios at the edge, we need to disable the original node lifecycle management controller of the k8s. For details, see Kube-Controller-Manager Installation Configuration Adjustments.

based on our test, seems there is no need to remove the node lifecycle controller from kube-controller-manager.
But how it works ? @rambohe-ch


[BUG] Higher number of Outgoing Messages when using Batch Receive

Describe the bug
When using Batch ReceiveAsync, I'm seeing a higher number of outgoing messages on Azure Service Bus compared to when ReceiveAsync(1) is used.
Exception or Stack Trace
N/A
To Reproduce

Create a console app that sends a message every 100~300 ms
Create a console app that consumes 10 messages every second using MessageReceiver

Code Snippet
https://gist.github.com/goenning/80ff763b4cc47a338bfae5d3de42bb17
Expected behavior
The red metrics shown below happens when using ReceiveAsync(10). The number of Outgoing Messages is higher than the Incoming. During green metrics I was using ReceiveAsync(1), in which case the total Outgoing Messages matched the Incoming Messages.
I'd expect the number of Outgoing Messages to match Incoming Messages regardless of using batch receive or not. I have confirmed that in this scenario there was no Re-delivery, every message was delivered exactly once (at least from the Consumer app perspective).
Screenshots

Setup (please complete the following information):

OS: Windows
IDE : VS2019
Version of the Library used<EMAIL_ADDRESS>
Additional context
This might not be a bug and possible working as designed, but in this case, why is this happening?
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[X] Bug Description Added
[X] Repro Steps Added
[X] Setup information Added

@goenning, thanks for the detailed description, but this looks like a support investigation and opening this issue through "support ticket" on the Azure portal would be the better route for this. They can take a look a service side logs for your namespace and guide further.


Dependency updates: Spring Boot 3.0.4, Spring Framework 6.0.6, Spring Data Elasticsearch 5.0.3

Description
Dependency updates: Spring Boot 3.0.3, Spring Framework 6.0.6, Spring Data Elasticsearch 5.0.3
Issues Resolved
N/A
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dlvenable @dblock could you take a look folks please

@dlvenable @dblock  could you take a look folks please?


 And add an AFQDataset.from_study() static method.
Resolves #116

This is now running into the same version errors as #119. So I'll wait until we merge that and then rebase.


webpack build give meaningful bundle name

Right now we are using random string for the bundled Javascripts; which is hard to tell once we start have code splitting.
investigate the webpack config to give meaningful name dynamically

here is what's helpful https://www.codemzy.com/blog/how-to-name-webpack-chunk

it's addressed #521


Bug: Config gets deleted after config is reapplied with errors

Current Behavior:

After applying a config successfully  and making a modification to it that doesn't pass through the validation stage in the frontend server the infra of the previously created config gets deleted
Expected Behavior:

A deletion of the infra shouldn't happen, if new changes to the config are invalid the old infra shouldn't be changed
Steps To Reproduce:

apply config
make a change that will fail on the validation stage in the frontend server
See terraformer logs for deletion of the infra

the infra of the previously created config gets deleted

Does this mean that the error in validation will somehow trigger the deletion process?

Does this mean that the error in validation will somehow trigger the deletion process?
Yes

it's a simple fix by just checking if the config had invalid manifest here


explanation on serverless.com

I found the following serverless.com web page. but a route53 record was not made.
https://www.serverless.com/plugins/serverless-aws-function-url-custom-domain
# add in your serverless.yml

plugins:
  - serverless-aws-function-url-custom-domain

custom:
  urlDomain:
    apiDomain: ${env:SUBDOMAIN}.yourdomain.com  # change by your custom domain
    hostedZoneName: yourdomain.com.  # your domain Route 53 hosted zone name
    certificateArn: 'arn:aws:acm:us-east-1:xxxxx:certificate/xxxxx' # need to be located at NVirgina

functions:
  api:
    handler: wsgi_handler.handler
    url: true # activate function URL!

I could successfully make a lambda function with url, CloudFront, and route53 record.
plugins:
  - serverless-aws-function-url-custom-domain
custom:
  urlDomain:
    domains:
      - xxx.abc.com
    hostedZoneName: abc.com.
    certificateArn: "arn:aws:acm:us-east-1:XXX:certificate/XXX"
    route53: true

So I would suggest you change the explanation on serverless.com to a later one.

Thanks for the suggestion. If I recall correctly, when this repo https://github.com/serverless/plugins gets updated, it will automatically fetches latest README with the fixes.


Add onMatrixAfterCellRender event

A the current moment there is no way to customize questions in cells of MatrixDropdown and Matrix Dynamic. onAfterQuestion event doesn't make a lot of sense for them.

Here is the event description:
    /**
     * The event is fired for every cell after is has been rendered in DOM.
     *
 options.question - the matrix question
     *
 options.cell - the matrix cell
     *
 options.cellQuestion - the question/editor in the cell.
     *
 options.htmlElement a html element binded with the cellQuestion object
     *
 options.column - the matrix column object
     *
 options.row - the matrix row object
     * @see onMatrixCellCreated
     * @see QuestionMatrixDynamicModel
     * @see QuestionMatrixDropdownModel
     */
    public onMatrixAfterCellRender: Event<(sender: SurveyModel, options: any) => any, any> = new Event<(sender: SurveyModel, options: any) => any, any>();

It has been implemented for all platforms except vue. I will do vue support on the next week.

The event is implemented for all platforms.


branch for supporting legacy robots with firmware version 4

There are still many users of the now EOL Franka Panda robots that are stuck on firmware version 4 and libfranka 0.9.
If it is not possible to support libfranka 0.9 and >= 0.10 in parallel on the humble branch, then it would alternatively be very useful to have a "legacy" branch in this upstream repo to (unofficially) support Franka robots with firmware version 4 and libfranka 0.9 with backports. The tag v0.1.0 is the last one that supports libfranka 0.9 as newer versions are requesting higher libfranka versions.
Could someone create a branch from this tag? My suggestions for naming would be legacy or fer1 for "Franka Emika Robot 1".

I think the following effort from @tingelst is aimed at addressing this need: https://github.com/tingelst/libfranka.
I am also interested in this as our lab has the EOL Franka Panda robots that I was hoping to run with the latest ROS 2 software.


ZAP wrong endpoint URL

Running ZAP in a local deployment with the following configuration:
{
  "readOnlyFileShareMounts": [
    {
      "fileShareName": "specifications",
      "mountPath": "/specifications"
    }
  ],
  "testTasks": {
    "targetConfiguration": {
      "apiSpecifications": [
        "/specifications/openapi.json"
      ],
      "endpoint": "https://<endpoint-url>/managementserver/rest"
    },
    "tasks": [
      {
        "toolName": "ZAP",
        "outputFolder": "zap",
        "keyVaultSecrets": [
          "TOKEN"
        ],
        "authenticationMethod": {
          "Token": "Token"
        }
      }
    ]
  }
}

The openapi.json specification contains the following:
"servers": [
  {
    "url": "https://localhost/ManagementServer/rest",
    "description": "Management Server entry point"
  }
]

Execution runs tests against URL from specification instead of endpoint in configuration, causing many errors like:
14529 [ZAP-Import-OpenAPI-1] WARN  org.zaproxy.zap.extension.openapi.ExtensionOpenApi - Failed to access URL: https://localhost/ManagementServer/rest/cameras : java.net.ConnectException : Connection refused (Connection refused)
14529 [ZAP-Import-OpenAPI-1] WARN  org.zaproxy.zap.extension.openapi.ExtensionOpenApi - Failed to access URL: https://localhost/ManagementServer/rest/cameras/id?tasks=tasks : java.net.ConnectException : Connection refused (Connection refused)
14529 [ZAP-Import-OpenAPI-1] WARN  org.zaproxy.zap.extension.openapi.ExtensionOpenApi - Failed to access URL: https://localhost/ManagementServer/rest/cameras/id?task=task : java.net.ConnectException : Connection refused (Connection refused)

This happens only when using a mounted file path for the specification.
Running a local python http.server on the host and changing the URL in the configuration to:
"apiSpecifications": [ "http://host.docker.internal:8000/openapi.json" ]

returns expected result.
Lastly, all other tools work with:
"apiSpecifications": [ "/specifications/openapi.json" ]

@Sticcia
Hi I cannot seem to be able to repro the issue
I am using petstore swagger specification https://petstore.swagger.io/v2/swagger.json and I added the following modification

I'm using the following RAFT job configuration file:
{
  "readonlyFileShareMounts": [
    {
      "FileShareName": "Zap-repro",
      "MountPath": "/specs"
    }
  ],
  "testTasks" : {
    "tasks": [
      {
        "toolName": "ZAP",
        "outputFolder": "zap-out",
        "targetConfiguration" : {
          "apiSpecifications": [
            "/specs/spec.json"
          ],
          "endpoint": "https://petstore.swagger.io"
        }
      }
    ]
  }
}

Hi @stishkin ,
The modification should replace your "host" and "basePath" as seen here: https://swagger.io/docs/specification/api-host-and-base-path/
Or, my guess is, you could try changing from "host": "petstore.swagger.io" to "host": "localhost".
From what I understand, ZAP is grabbing the endpoint url from the specification (either "host" or "servers") instead of the configuration. So, having the spec differ from the config should suffice to reproduce this.
(this happens only when using local mounted file, works fine if hosting i.e. Python server)
Also, I tried removing the URL altogether from the specification and got the following:
22612 [ZAP-Import-OpenAPI-1] WARN  org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerConverter - Failed to build/normalise the API URL using Server URL: /
java.lang.IllegalArgumentException: The scheme must not be null.
	at org.zaproxy.zap.extension.openapi.converter.swagger.UriBuilder.validateNotNull(UriBuilder.java:279) ~[openapi-beta-19.zap:?]
	at org.zaproxy.zap.extension.openapi.converter.swagger.UriBuilder.build(UriBuilder.java:252) ~[openapi-beta-19.zap:?]
	at org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerConverter.createApiUrls(SwaggerConverter.java:259) [openapi-beta-19.zap:?]
	at org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerConverter.readOpenAPISpec(SwaggerConverter.java:182) [openapi-beta-19.zap:?]
	at org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerConverter.getRequestModels(SwaggerConverter.java:159) [openapi-beta-19.zap:?]
	at org.zaproxy.zap.extension.openapi.ExtensionOpenApi$1.run(ExtensionOpenApi.java:289) [openapi-beta-19.zap:?]
22612 [ZAP-Import-OpenAPI-1] WARN  org.zaproxy.zap.extension.openapi.ExtensionOpenApi - Unable to obtain any server URL from the definition.
org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerException: Unable to obtain any server URL from the definition.
	at org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerConverter.createApiUrls(SwaggerConverter.java:272) ~[openapi-beta-19.zap:?]
	at org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerConverter.readOpenAPISpec(SwaggerConverter.java:182) ~[openapi-beta-19.zap:?]
	at org.zaproxy.zap.extension.openapi.converter.swagger.SwaggerConverter.getRequestModels(SwaggerConverter.java:159) ~[openapi-beta-19.zap:?]
	at org.zaproxy.zap.extension.openapi.ExtensionOpenApi$1.run(ExtensionOpenApi.java:289) [openapi-beta-19.zap:?]

Finally, replacing localhost with the correct endpoint host-name does run correctly. But, since the host changes often, it should be obtained by the configuration, not the specification. Or is this a wrong assumption?
Thank you.

We are using the following Python script in order to use ZAP
https://github.com/zaproxy/zaproxy/blob/main/docker/zap-api-scan.py
And we use the following flag to set the hostname
-O                the hostname to override in the (remote) OpenAPI spec
There is OpenAPI add-on to ZAP that seem to expose openapitargeturl that might support the scenario that you described in the bug:
https://www.zaproxy.org/docs/desktop/addons/openapi-support/
We need to do some investigation on how to expose that setting

I don't see why the -O parameter will only override if targeted against a remote specification and not with a path to a local file.
I created a bug on the ZAP repository: https://github.com/zaproxy/zaproxy/issues/6673.

zaproxy/zaproxy#6673
got closed as dup of
zaproxy/zaproxy#5510


Fix link to add a project to the Registry

cc @mtwo if I could get a sign-off on this today it'd be good, fixes a broken link

this also fixes the issue where only one result would get returned from a search


Using elm-live from within devcontainer craches

Quick Summary:
When using the community elm container. I'm getting a crash when opening localhost:8012
SSCCE
node ➜ /workspaces/elmish-dev-002 $ npm run watch

<EMAIL_ADDRESS>watch
elm-live src/Main.elm --port=8012 -- --output=dist/index.js

elm-live:
Server has been started! Server details below:
- Website URL: http://localhost:8012
- Serving files from: /workspaces/elmish-dev-002
Error parsing result:  SyntaxError: Unexpected number in JSON at position 2
at JSON.parse ()
at ChildProcess. (/workspaces/elmish-dev-002/node_modules/elm-live/lib/src/build.js:110:33)
at ChildProcess.emit (node:events:513:28)
at Process.ChildProcess._handle.onexit (node:internal/child_process:293:12)
{
build: {
action: 'error',
data: '\n' +
'-- ERROR -----------------------------------------------------------------------\n' +
'\n' +
'I ran into something that bypassed the normal error reporting process! I\n' +
'extracted whatever information I could from the internal error:\n' +
'\n' +
'>   dist/index.js: openBinaryFile: permission denied (Permission denied)\n' +
'\n' +
'These errors are usually pretty confusing, so start by asking around on one of\n' +
'forums listed at https://elm-lang.org/community to see if anyone can get you\n' +
'unstuck quickly.\n' +
'\n' +
},

Elm:
0.19.1
Browser:
Any
Operating System:
Windows 10 - WSL2
Also running iis on the machine and port 8000 already occupied.

Additional Details
package.json
{
"name": "elmish-dev-002",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"watch": "elm-live src/Main.elm --port=8012 -- --debug --output=dist/index.js",
"compile": "elm make src/Main.elm --output=dist/index.js",
"test": "echo "Error: no test specified" && exit 1"
},
"keywords": [],
"author": "Theodor",
"license": "ISC",
"devDependencies": {
"elm-live": "^4.0.2"
},
"dependencies": {
"elm-format": "^0.8.7"
}
}

Hello @thepowercare
I am also running Windows 10 with WSL 2. I encounter similar issues with permissions some times.
For me, what I ended up doing was adding this to my devcontainer.json:
"postStartCommand": "rootDir=$PWD; cd .. && user=$(whoami); sudo chown $user -Rf $rootDir && mygroup=$(id -gn); sudo chgrp $mygroup -Rf $rootDir && cd $rootDir"
I think the issue also happens depending if you did the git checkout into WSL, or if you are from WSL connecting to a windows path.
For me I ended up doing the git clone inside WSL, to work around the permissions.
Then, in order to keep using my favorite windows Git client (Fork), I opened the repo at \\wsl.localhost\Ubuntu-22.04\home\...
All in all, I don't think this issue is necessarily related to Elm or even to the community dev container, but more likely to how Windows and WSL interact in terms of file permissions.

Solved by applying @fdbeirao suggestion :)

If you no longer have the issue, then indeed closing would be the way to go. Indeed, permission issues will usually be associated to how you performed the initial git clone. Glad the problem is solved, have a great day further 🙂

Solution was short lived :(
Tried using elm-go. This hinted that both lib's are looking in the root folder.
Moving files from my target folder to root solves this problem.

The solution: "watch": "elm-live src/Main.elm --dir=dist --port=8011 -- --debug --output=dist/index.js",


ci: update terraform, opentofu and cloudstack versions

Adds the terraform v1.9 and removes the v1.7 and adds the opentofu v1.7 and updates Cloudstack to v<IP_ADDRESS> and v<IP_ADDRESS>.

hey @vishesh92 @kiranchavala can we get this one reviewed and merged if approved please 🙏

LGTM


Support connecting to remote db

Upgrade dependency
Add documentation in notion https://www.notion.so/adamoh/Connecting-to-Remote-Databases-4b4dfc709ae24ff481de74606e428e68?pvs=4

When testing the postgres endpoints for user, create should fail since the current master doesn't have the role field yet


CPU bottleneck when running the pose estimation demo

Hi,
I am trying to track pose estimates using the "Tracking pedestrians with AlphaPose" demo as a reference. However I am using Nvidia trt-pose (https://github.com/NVIDIA-AI-IOT/trt_pose) instead of alpha pose as given in the demo.
The pose estimation alone runs well at around 25fps (having about 50% CPU usage), however when I include the pose tracking, my fps drops to about 10-12 fps and its definitely a CPU bottleneck as my CPU usage is around 98% when running tracking.
I would like to know if this is considered "normal" with the pose estimation tracking or I am doing something wrong in my end.
PC specs
GTX 1060 6GB
intel i7 8500 H
6GB ram
Thanks for the great work.

Hi,
Do you track every skeleton points of each individual ? Are you dealing with a lot of people on your videos?
If not done yet, did you try with a sample video containing only one person? Are the results in terms of FPS the same?

Hi,
I tested on a video with 1 person with tracking on 18 keypoints, which brings about 10fps. I also tested on a video with 4 people and got around 10fps too.
I also did some experimenting and tried tracking 6 or 8 keypoints for each person which increases the fps to about 20.

Can you please share your code and sample video you are using?
I'll look into it.

Hi,
Since I have already integrated this code into another project, I cannot share the entire thing. However I made a demo python code of what i'm trying to do. I've simplified a lot of the things and generated some fake keypoints. If I disable the tracker (enable_tracker=False), code runs with < 10% CPU utilization, however with enable_tracker=True I get 100% CPU utilization.
Also even though in my actual code there was a fps drop too, I cannot replicate this fps drop here, most likely because this demo code is too simple to cause any drop. However the high CPU utilization is very strange indeed.
https://gist.github.com/pramod-wick/7338033c8ce03285cc6e2662f746da56

Hi,
I ran your code and got the same CPU utilization as you. I also did not notice any drop in fps.
Are you sure that this drop is not due to another part of your code?
I suggest you to profile your application so that you can see exactly which processes take most time. To do that, you can run the following command:
python -m cProfile --sort cumulative YOUR_APPPLICATION.py &> out.log
A file called "out.log" will be created. Inside it, you'll find a table with the cumulative times that each function took. Feel free to share this table if you need another eye.

Hi,
Thanks for the quick response and support :), Could you confirm that with "enable_tracker=True", the CPU utilization is not increased? .  I also ran the cProfile command, however do not see any problems in the log file (attached)
out.log

Hi,
I confirm that the CPU utilization is also at 100% when with tracker enabled, but no drop in fps.
Regarding the profiling, I was referring to your initial application, i.e. the one for which you notice high FPS drops. Can you please perform a profiling of this application and analyze the log? Sorry for the misunderstanding.

Hi,
I performed profiling for a 100 frames of my original application with the norfair pose tracker (sort.log) vs with SORT tracker (abewley/sort) with bounding box input (posesort.log).
There definitely is a increase in inference time, By analyzing the log file, I guess that the 100% CPU utilization in the norfair pose tracker causes my cnn (densenet) to take up extra processing time.
I would like to know if CPU utilization could be reduced in anyway or is this is expected behavior when tracking 18 points?

Hi @pramod-wick, you should be getting much more than 10fps with that machine. There are a ton of CPU speed optimization opportunities that we plan to tackle soon, but even without those you should be getting larger numbers than those.
Also, thank you @lweicker for the help with answering!

Hi,
I checked your logs; the differences in process time for trtkeypoints.py:98(find_key_points) and densenet.py:XX(forward) between SORT and norfair are odd. I don't understand how the tracking could influence the process densenet at all. The input video for both logs was the same? Is your process done sequentially? You only changed the tracking algorithm between your two runs or is there anything else different?
For information, I also run trt_pose and norfair (among other processes) on one of my application. I run it with a Nvidia Jetson Xavier NX. My application is catching two rtsp streams @ 1080p, live. The average process time is about 18 fps (over 4500 iterations) with a minimum of 11 fps.
The only difference I can imagine is the number of tracked points. In my case, I only track 1 point per person (which consists in a combination of keypoints) instead of the 18 you mentioned. In each image process I track between 0 and 15 people detected.
For another case, I use norfair combined with ssd mobilenet v2 model (among other processes) on another Xavier NX. Process takes on average 15.5fps with minimum of about 9 fps, but this time for 4 rtsp input streams (3x 1080p, 1x 4K).

@joaqo Yes definitely looking forward for those optimizations :)
@lweicker I agree the results are strange indeed, because the trt pose densenet is completely decoupled from the tracking, so the tracking should not influence it. It was the same program on the same video (100 frames), only difference was swapping the tracking algorithm, and yes the program is sequential.
Good to hear it running well on the jetson devices, In my case it may very well be the number of keypoints, since if I reduce number of keypoints to around 6 the CPU utilization drops <20% and no significant changes in fps.


Automatic property type conversion during entity build

Need to convert map file string properties into their respective Godot types using FGD file metadata.

Implemented in the latest commit.


Server Doesn't get detected in mobile application

Hi,
I am facing an issue of connectivity between things server and mobile client.
when I start the things application and start scanning in mobile application most of the time it doesn't detect and when it does, after clicking in the button mobile application crashes because it gives null when trying to get the servers.

Im also facing the same issue


The tooltip cannot be displayed in the correct location

Describe the bug
当工具提示设置placement属性为mouse时，本来位置是在鼠标指针的右下角，但是如果鼠标指针距离有窗口边界过近时，工具提示就不能显示在正确的位置了，请立即修复。
When the tooltip sets the placement property to mouse, the original position is in the lower right corner of the mouse pointer, but if the mouse pointer is too close to the window boundary, the tooltip cannot be displayed in the correct position, please fix it immediately.
When the window is not maximized, the tooltip display is blocked by the window boundary, and when the window is maximized, the tooltip is displayed in another location
Steps to reproduce the bug
When the window is not maximized, the tooltip display is blocked by the window boundary, and when the window is maximized, the tooltip is displayed in another location
Code

Window maximization cases

Expected behavior
The tooltip should appear at the bottom right of the mouse
Screenshots
No response
NuGet package version
Windows App SDK 1.2.3: 1.2.230118.102
Packaging type
Packaged (MSIX)
Windows version
Windows 11 version 22H2 (22621, 2022 Update)
IDE
Visual Studio 2022
Additional context
No response

This is likely related to https://github.com/microsoft/microsoft-ui-xaml/issues/5958


Add explicit "Clear filter" button to clear filters

ref #288

What do you think about this implementation @xentac?

I think that's great, though I might put it under the search box so that
search shows up first. My brain didn't like
Link
Text input
Links
On Mon, May 9, 2016, 1:25 AM Dominik Aumayr<EMAIL_ADDRESS>wrote:

What do you think about this implementation @xentac
https://github.com/xentac?
[image: screenshot]
https://cloud.githubusercontent.com/assets/5135450/15107482/49d08a06-15d0-11e6-8f32-af0462c32d33.png
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/aumayr/fava/pull/290#issuecomment-217804669

@xentac now it is below


WIP: Remove docker binary from weaveexec container

Fixes #2957
Creating weaveutil commands to remove docker binary dependency in weaveexec.
This is still a WIP... Need to port the docker run, docker create, docker ps, parts of docker inspect (although probably want high-level weaveutil commands for check_running, etc).
@bboreham

Thanks for this, @dtshepherd.  It does seem a little more complicated than we need - e.g. we never call kill with a signal so we don't need a table to decode them.  Or the timeout parameter.

Ok I'll remove the extra options.  I'm working on some of the docker inspect replacements now, which aren't using docker inspect directly.
Any idea how to get the CircleCI tests to pass?  It complains about a missing secret key.

The secret key is only accessible to PRs in the repo, to avoid people submitting PRs which steal the key and/or steal the resources it controls.
I can push your branch to the repo and the tests will run.

Finished replacing docker inspect in weave script (check_runnning, check_not_running, ask_version, rewrite_etc_hosts, with_container_fqdn).
Still need to implement commands to create weavedb and weavevolumes containers.  Also, need to implement docker ps, which really just loads volume containers to delete, so maybe create a higher level command for that action.  Probably should generalize some of the work done for weaveutil ask-version to launch weave container too.

@bboreham Just committed the removal of the remaining docker ... commands except for the single complicated WEAVE_CONTAINER=$(docker run ...).  The launch's docker run takes many options (some from user-defined WEAVE_DOCKER_ARGS) and we'll need to at least implement -d, -v, -e, --name,  --restart, --privileged, --net=host, --pid=host, --volumes-from.
Thoughts on the implementation?  Probably need to implement a near direct pass-through of the docker run with the limited options...

OK, I tried a first cut at the run-container command.  I'm not super happy with it because it doesn't use a true argument parser, but the smoke tests seem to work (although, I've noticed some fragility with some of the tests (e.g. 840_weave_kube_3_test.sh) even on master with none of my changes.
@bboreham Can you please kick off a CI build and test?

@bboreham I think this is ready for a 2nd pass review.  I just rebased with upstream master as well, since there was some conflicts with weave script.

This is great; I can see some potential further refactorings which would bring the code weight down, but happy to merge what you have and leave them for the future.
Regarding squashing commits, one would be fine, but if you see a few logically separate ones then that is fine too.

@bboreham I think I responded to your review comments (some of the comments weren't on lines that needed to change so github didn't dismiss).  I squashed to two commits (all of my changes + commit stolen from #2952 for try_bridge_create).
I think some of the code weight could be reduced if we merged some of prog/weaveutil/container.go with common/docker/client.go.  Right now, the two are completely independent and I didn't want to change that in this branch.  That refactor seemed like an effort that may cover the entire repository, not just weaveutil.
Hopefully this next review pass looks good for merging.  I know this is a risky change, so I understand if its delayed for release to master.  I'd like to build upon this PR to fix #3102.

Fixed the Makefile and removed those shasum files, good catch.  We'll see what the CI looks like after these changes...

Nice! Image size comes down by ~34MB

I didn't even check that! Yeah that's a good win.


Remember "original_user" for switch_back does not respect SwitchUser.available_users_identifiers

Hi
Thanks for the gem, it works really well for my Rails - devise setup. However I'm facing this issue where I have the user identifier other than ID:
config.available_users_identifiers = { :user => :slug }

When I check the checkbox next to switch_user_select before switching from "admin" to a "user" for switching back, the value stored in the session[:original_user_scope_identifier] is still "user_ID" instead of "user_SLUG". Consequently, I cannot "switch back" as the saved admin user cannot be found with the query:
User.where(slug: ID_stored_in_session)

If I find some time, I'd try to submit a pull request with a fix. Reporting it until then :)

Bump, I am seeing this too.


Misleading error message "Failed to find compilation database for " caused by syntax errors in compile_commands.json

Below is the output (obfuscated) of the result of viewing a file ("aaa_interface.C") in my text editor. This output is run through cat -n to I can refer to line numbers.
     1	I[16:52:04.560] clangd version 11.0.0
     2	I[16:52:04.560] PID: 189988
     3	I[16:52:04.560] Working directory: /the/git/worktree/root_dir
     4	I[16:52:04.560] argv[0]: /the/path/to/the/clang-11/head_directory/bin/clangd
     5	I[16:52:04.560] argv[1]: --header-insertion-decorators=0
     6	I[16:52:04.560] Starting LSP over stdin/stdout
     7	I[16:52:04.566] <-- initialize(1)
     8	I[16:52:04.567] --> reply:initialize(1) 0 ms
     9	I[16:52:04.959] <-- initialized
    10	I[16:52:04.967] <-- textDocument/didOpen
    11	I[16:52:05.025] Failed to find compilation database for /the/git/worktree/root_dir/dir1/dir2/dir3/dir4/dir5/dir6/aaa_interface.C
    12	I[16:52:05.025] ASTWorker building file /the/git/worktree/root_dir/dir1/dir2/dir3/dir4/dir5/dir6/aaa_interface.C version 0 with command clangd fallback
    13	[/the/git/worktree/root_dir/dir1/dir2/dir3/dir4/dir5/dir6]
    14	/usr/bin/clang /the/git/worktree/root_dir/dir1/dir2/dir3/dir4/dir5/dir6/aaa_interface.C -fsyntax-only -resource-dir=/path/to/clang/head/dir/lib/clang/11.0.0

Notice one line 3 that clangd is detecting the "Working directory". Notice on line 11 it says it "Failed to find compilation database for". But the compilation database file does exist at /the/git/worktree/root_dir/compile_commands.json.
The compile_commands.json file is definitely found, but it has a syntax error. And, that results in the "Failed to find compilation database for" error. So, the error message on line 11 is misleading.
You can reproduce this by adding a syntax error to an existing compile_commands.json file. Here, I'm adding additional backslashes which foul up the parsing:
{
  "directory": "path/to/some/directory",
  "command": "/path/to/bin/clang++ -DSOME_MACRO=\\\\"value\\\\" -c aaa_interface.C -o aaa_interface.o",
  "file": "path/to/some/source/directory/aaa_interface.C"
},

The expectation here is that the error message be specific to what the cause, not be a "catch-all" error message for both inability to find files and syntax errors in those files.
System information
Output of clangd --version: clangd version 11.0.0
Editor/LSP plugin: GNU Emacs 27.1/lsp-mode
Operating system: RedHatEnterprise 8.2

When I try this locally, immediately before the "Failed to find" message in the log, I see a "Failed to load" message:
E[18:22:56.645] Failed to load compilation database from <path>/compile_commands.json: Expected string as value.
I[18:22:56.645] Failed to find compilation database for <path>/test.cpp

The error message isn't super-descriptive (for example, it doesn't point to the line of the json file where the error occurred), but it does at least identify that it tried loading a CDB at a particular path and failed.

It looks like the "failed to load" error is new in clangd 12 (added in this patch).
So, this was indeed an issue in clangd 11 but has been fixed in clangd 12.

Closing the issue given the comment from @HighCommander4
Thanks to the both of you. I will just wait until I can move to clangd 12.


Local configuration file

It could be usefull to have a configuration file local to the folder
This way we could define a custom name or ignore files for the release/update
{
     "name": "my plugin",
     "ignore": [
            ".git/**",
             ".gitignore",
             "node_modules/**"
       ],
       "type": "plugin",
       "version": 0.1,
        "etc..."
}

I wanted this tool to be a minimalistic tool for rapid dev-support. I don't see the reason to keep an extra file for a plugin name while we can use the directory name (helps with organizing also) or to keep the version name while we can use the plugin's XML.
Also no need to ignore anything cause it just copies/zips the needed files.
Or am I missing something?

When it comes to ignoring git files etc, I think we can hardcoded it as it's obvious that these should not be copied under C2 nor zipped to release version.

About custom name, I faced two cases where i needed it (tho I can live with the current state)

I have a behaviour and a plugin that work together, so they are both named the same
That force me to have a structure like this :

XXXX/ Plugin     /my_name/content
         /Behaviour/my_name/content

while I can just have Plugin/content and Behaviour/content directly

I have a tool that work with my plugin, so I pull all inside my structure:

ToolRoot/App/*
              /Plugin/plugin_name/content

While i can directly have:
ToolRoot/App/*
              /Plugin/content/

This is not a big issue but it can lead to deep folder structures

About ignore I can put assets on top folders where it does not impact things but since we could have a local configuration file, I just tough of what you could put inside to make it even more usefull

To wrap it up all,if you want to keep the tool simple, just avoid this ;)

The directory determines the PluginID mainly. So you can just have a behavior and plugin under directory "NameB" and "NameP" for instance and after creating the workspace with c2addona init you can just edit the name in edittime.js. That will work and not collide with anything. It's all about the plugin's ID mainly.


Update Slate Documentation

The Slate documentation needs to be updated to reflect the current state of the project. This involves updating 2D rendering, displays, looking at, inventory, etc. New features need to be documented as well, such as 3D rendering.

Is this why i can't render objects on my screen?

If you’re following the slate tutorial, yes


URL templates

SDR by default produces urls with templates similar to:
http://localhost:8080/api/users/0
Is it possible to get a $resource function with such template from a processed resource? So that  api._resources('users') would return equivalent of $resource('/api/users/:userId'). Is this feature currently available?

Hi,
currently this is not supported but I could add something like the following:
If you want to have a URL template parameter in the $resource object, then you could call it the following way:
processedResponse._resources("categories/:categoryId")

And then I would split the resources name by the / and get the URL from the resource and add the :categoryId as a suffix to the URL returned in the $resources object. This is the only way I currently see.
What do you think about that?
Thanks and regards,
Guy

I think it would work just fine.

Hi,
could you please try the new feature with the master and tell me if it works as you need it? Please also check the documentation where I added it too -> https://github.com/guylabs/angular-spring-data-rest#the-_resources-method-parameters-and-return-type
If it works I will release 0.4.2.
Thanks and regards,
Guy

Just checked them both. Working good. Thanks.

Ok just released 0.4.2. Thanks and regards,
Guy


long-term rkt replacement

With rkt in the bin we need a long-term solution on how to run the kubelet (and other pods/containers on evert node).
In general we need a solution for the kubelet, everything else could be (and probably should be) run in daemonsets.
We have a WIP to do that: https://github.com/sapcc/kubernikus/pull/566
Running daemonset in the clusters requires a reconciler that does the right thing when stuff gets modified or the cluster is upgraded.
Possible options:

run the kubelet natively on the flatcar node

seems to be the recommended (kubeadmin style) approach, has the risk of incompatibilities with certain binaries that the kubelet wants to use

run it using systemd-nspawn somewhat similar to how rkt did it

no prior art found. sounds nice but devil could be in the details. No experience with low level pluming like systemd-nspawnd in the team

run it using docker/containerd
daemon based container runtimes for kubelet are a little overkill and also mix up running kubelet with the container runtime also used by the kubelet for pods.

Is solved in support for k8s versions >=1.24.


AArch64: implement proper application of the insn-related relocations

This adds yet another relocation application layer where the AArch64 instruction relocations have a handler that known how to encode a computed value into a given instruction.
With the change, the tests improved from:
test result: FAILED. 5 passed; 26 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.25s
to:
test result: FAILED. 15 passed; 16 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.86s

Is "insn" short for instruction? Perhaps spell it out in full.

Correct, it's a short variant for Instruction and I've just renamed it.

I assume it's ARM-specific? The variants of the enum look pretty ARM-specific anyway. It does look like at some point, that we'll probably want to have maybe an extra associated type on Arch, so that it can be fully ARM-specific. But it's fine to leave that until later.

Exactly. Right now, it's all ARM64-specific, while the RelocationSize extraction mechanism is pretty generic and might be reused in the future for other architectures.


HL-426: CSV export of application data

Includes HL-428: Finnish column headings for CSV data
Also includes HL-408: application cancellation reason.
Implementing CSV export this way also covers the functionality in
HL-425.
Description :sparkles:
Issues :bug:
Testing :alembic:
Screenshots :camera_flash:
Additional notes :spiral_notepad:

Codecov Report

Merging #759 (4c021e0) into develop (c0d6361) will increase coverage by 29.70%.
The diff coverage is 98.76%.

@@             Coverage Diff              @@
##           develop     #759       +/-   ##
============================================
+ Coverage    65.26%   94.97%   +29.70%
============================================
  Files          777      171      -606
  Lines        18161     7217    -10944
  Branches      1001        0     -1001
============================================
- Hits         11852     6854     -4998
+ Misses        5373      363     -5010
+ Partials       936        0      -936

Impacted Files
Coverage Δ

backend/benefit/applications/models.py
93.89% <94.11%> (-0.14%)
:arrow_down:

...d/benefit/applications/services/csv_export_base.py
97.05% <97.05%> (ø)

...t/applications/services/applications_csv_report.py
98.14% <98.14%> (ø)

...fit/applications/api/v1/application_batch_views.py
100.00% <100.00%> (ø)

backend/benefit/applications/api/v1/serializers.py
94.03% <100.00%> (ø)

...benefit/applications/services/talpa_integration.py
100.00% <100.00%> (+3.50%)
:arrow_up:

backend/benefit/applications/tests/conftest.py
97.61% <100.00%> (+0.43%)
:arrow_up:

backend/benefit/applications/tests/factories.py
100.00% <100.00%> (ø)

...t/applications/tests/test_application_batch_api.py
100.00% <100.00%> (ø)

...enefit/applications/tests/test_applications_api.py
99.21% <100.00%> (+0.01%)
:arrow_up:

... and 618 more

Continue to review full report at Codecov.

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


New Experimental updates

Hi Lancelot - are you still actively maintaining this project, or has it been abandoned?
I ask because of the new “Experimental” update, which has changed the nodes.
I love this tool, and would hate to see it abandoned.
PS. I am a software engineer by trade, but mainly c++, and have no experience in typescript or web development. If you have abandoned this project, would you mind me making a stand-alone app based on your code?

Hello @7Rickus,
This project is not abandoned, just been really busy and lost a bit of motivation. I'm working on getting it back up ;).
I'm in the process of updating the nodes and adding dual version for live / exp versions ASAP.
Feel free to implement a standalone one by all mean as well :).

That’s completely understandable.  It is (in my opinion) the very best of the map projects out there.
PS. Have you found any way of extracting ALL the nodes/item locations from the save game or the Pak file?
Cheers,
Rick

On 28 Jun 2019, at 6:30 am, Lancelot Prigent<EMAIL_ADDRESS>wrote:
Hello @7Rickus,
This project is not abandoned, just been really busy and lost a bit of motivation. I'm working on getting it back up ;).
I'm in the process of updating the nodes and adding dual version for live / exp versions ASAP.
Feel free to implement a standalone one by all mean as well :).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@7Rickus Yup, from the save games. The method did not change much since release but with each update the data change a bit so need to double check each time something is released ;).
New nodes are on the way for the exp build, need a bit more work will publish tomorrow


Feat: support forge install --branch and forge uninstall

Component
Forge
Describe the feature you would like
forge install github.com/Rari-Capital/solmate -b v7

should be like
git submodule--helper add -b v7 https://github.com/Rari-Capital/solmate.git vendor

forge uninstall Rari-Capital/solmate

Additional context
No response

so runnin the command above actually introduces a bug
$ git status
fatal: not a git repository: lib/solmate/../../.git/modules/lib/solmate

currently installing a specific branch is possible with forge install github.com/Rari-Capital/solmate@v7

currently installing a specific branch is possible with forge install Rari-Capital/solmate@v7

i understood that to be a tag not a branch. Either way it should be changed to reflect the flag -b imho.

Already supported with @ - anything after is a Git ref, so it can be a commit, a branch or a tag

Already supported with @ - anything after is a Git ref, so it can be a commit, a branch or a tag

but branches can be the same as a tag name - they are not the same

I don't see a plausible scenario where you have a tag and a branch with the same name that are out of sync indefinitely - do you have an example?

I don't see a plausible scenario where you have a tag and a branch with the same name that are out of sync indefinitely - do you have an example?

Tags are versioned releases whereas branches are both a versioned release and includes compilation artifact. The reason compilation artifact is included in branches and not tags is to reduce merge conflicts etc. History is continued on tags, whereas branches are basically moribund


added key event for login-signup

Description

Added the key event for Logn-Signup, now an user will be able to submit the form with keeping any field active

@mdazfar2 Please review and merge this PR

@Asymtode712 Actually, this has already been implemented. I thought you were not interested since you did not reply, so Ayushmaan completed it.

@mdazfar2 Sorry for responding late,
Actually the current key behaviour only works when we have an active field......Like if we are on the password or email field and we click on Enter key then only it works and not when we are not on any active field.....so can check it on our deployed site....I tried it and so I added an useEffect for overall component so that we won't require to be on an active field.......
Please check once.....

@Asymtode712, I'm a bit confused.  Would it be possible to share a demo video or provide more details to help me understand what you're referring to?

@mdazfar2
https://github.com/mdazfar2/HelpOps-Hub/assets/115717746/905e1c2f-7fa1-4fdd-9f7e-8d47f5051c63

@mdazfar2 The thing is I have previously applied this to all the components in the given way only so that we won't have to keep an active field and the key event can still perform its functioning.....so this was the component which was lagging this effect

@Asymtode712,
Ah, I see now! Thank you so much for taking the time to explain that. It clarifies things a lot.  While no other contributor included a video demonstration, yours was very helpful.  It really sets you apart!

Could you please raise an issue on that?

@Asymtode712 Actually I don't need any points on that as this was to be done by me in the previous issue ( #737 ) only.....So please just merge it no need to label it
Also, thanks for the appreciation😇🙏

@mdazfar2 You can reopen and merge this PR🙏

@mdazfar2 You can reopen and merge this PR

@Asymtode712 Oh! ok I thought you would create a new PR.


File "/usr/local/lib/python3.8/dist-packages/aries_cloudagent-0.7.1-py3.8.egg/aries_cloudagent/protocols/present_proof/v2_0/manager.py", line 263, in create_pres
    await pres_exch_format.handler(self._profile).create_pres(
  File "/usr/local/lib/python3.8/dist-packages/aries_cloudagent-0.7.1-py3.8.egg/aries_cloudagent/protocols/present_proof/v2_0/formats/dif/handler.py", line 314, in create_pres
    pres = await dif_handler.create_vp(
  File "/usr/local/lib/python3.8/dist-packages/aries_cloudagent-0.7.1-py3.8.egg/aries_cloudagent/protocols/present_proof/dif/pres_exch_handler.py", line 1213, in create_vp
    req = await self.make_requirement(
  File "/usr/local/lib/python3.8/dist-packages/aries_cloudagent-0.7.1-py3.8.egg/aries_cloudagent/protocols/present_proof/dif/pres_exch_handler.py", line 310, in make_requirement
    raise DIFPresExchError(
aries_cloudagent.protocols.present_proof.dif.pres_exch_handler.DIFPresExchError: Error creating requirement inside to_requirement function, Error creating requirement from nested submission_requirements, 'NoneType' object is not iterable
DON'T shutdown on DIFPresExchError Error creating requirement inside to_requirement function, Error creating requirement from nested submission_requirements, 'NoneType' object is not iterable
Handler error: Dispatcher.handle_message
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/aries_cloudagent-0.7.1-py3.8.egg/aries_cloudagent/protocols/present_proof/dif/pres_exch_handler.py", line 248, in to_requirement
    requirement = await self.to_requirement(
  File "/usr/local/lib/python3.8/dist-packages/aries_cloudagent-0.7.1-py3.8.egg/aries_cloudagent/protocols/present_proof/dif/pres_exch_handler.py", line 245, in to_requirement
    for submission_requirement in sr.from_nested:
TypeError: 'NoneType' object is not iterable

level requirements being combined with AND instead of OR by nesting them. It works with just one level of nesting, but when I tried two levels

I just fixed this with support multi level nested req commit.
commit
Regarding submission_requirements being evaluated independently and all pick rule, I am still looking into these.

I confirm that double nesting works now!

Looking into examples, I deduce that the DIF definitions are using "number of Input Descriptors" is synonymous with "number of inputs" (which actually means number of claims):
If Submission Requirement Object has a from property, this directs the processing entity to submit inputs from the set of Input Descriptors with a matching group string. In the first example that follows, the Submission Requirement requests a single input from Input Descriptor group "B". In the second example, the Submission Requirement requests from 2 to 4 inputs from Input Descriptor group "B".
That was for "from". For "form_nested", it means a number of Submission Requirement Objects.

@swcurran , has DIF been contacted for clarification?

My apologizes -- I've not submitted the issue.  I was on vacation for a while and have not gotten back to this.  It will try to get this done (but it is unfortunately not top of my list), so it would be better if either of you that have more information submit an issue to here: https://github.com/decentralized-identity/presentation-exchange/issues
Sorry to have dropped the ball on this.

My apologizes -- I've not submitted the issue. I was on vacation for a while and have not gotten back to this. It will try to get this done (but it is unfortunately not top of my list), so it would be better if either of you that have more information submit an issue to here: https://github.com/decentralized-identity/presentation-exchange/issues
Sorry to have dropped the ball on this.

I will submit the issue there and post the link here, @swcurran and @rpobulic, if needed, you can add to it.


distro

Another compile error came up so I fixed it and started an rc build against this branch to make sure this fixes the compile error.

Coverage decreased (-2.5%) to 37.732% when pulling a982fc48d9f52b635e16577b805144fbf3ce6e00 on distro into<PHONE_NUMBER>bed786d237729bf74e55c2ea46d6eb on release/1.21.


Revert "BAU Make REGISTRY_IMAGE_JDK a global build arg"

Reverts alphagov/verify-hub#487
Received an error connecting to ECR from concourse task: no basic auth credentials

Won't this revert to an also broken state?


Handling of errors before FEM-Design gets stuck

Handling of errors before FEM-Design gets stuck
Example trying to run an analysis with calcGmax will not work for a model without LoadGroups. (Of course!)

Unintuitive for new users. Difficult to figure out what goes wrong.
Feedback from @samnyb


renderer: light/dark mask mode support

These two missing masking modes are required for the Lottie specification.

CompositeMethod::LightMask: The mask is added to the masks above it in the stacking order. Where multiple masks intersect, the highest transparency value is used.
CompositeMethod::DarkMask: The mask is added to the masks above it in the stacking order. Where multiple masks intersect, the lowest transparency value is used.

see: https://helpx.adobe.com/after-effects/using/alpha-channels-masks-mattes.html

Lighten test.json
Darken test.json


Newrelic RPM Performance Regression

Issues #45 and #51 have both reported issues when using Makara alongside certain versions of newrelic/rpm. In an attempt to be as transparent as possible as well as potentially isolate the issue, the following table will hold the information required to check your stack against other community reports.

Makara Version
AR Version
RPM Version
Regression

0.0.x
3.2
3.6.9
no

0.2.x
4.x
<IP_ADDRESS>
no

0.2.x
4.x
<IP_ADDRESS>
no

0.3.x
4.x
<IP_ADDRESS>
no

?
?
?
?

0.2.x
4.x
3.7.2
yes

0.2.x
4.x
<IP_ADDRESS>
yes

0.3.x
4.x
<IP_ADDRESS>
yes

0.3.x
4.x
<IP_ADDRESS>
yes

0.3.x
4.x
<IP_ADDRESS>7
yes

0.3.x
4.x
<IP_ADDRESS>6
yes

Hey there! I'm a developer on newrelic_rpm and got linked to these perf issues today. Major bummer! I'd like to help get to the bottom of it if we can.
I haven't used makara in earnest before, and plugging it into my basic Rails 4 test app didn't show me much perf difference yet. I'm sure I'm missing something in my configuration, though.
Does anyone have a relatively simple duplication case that I could use to dig in? Ideal would be a repo with a Rails app that I could toggle between the versions and see the perf differences, but any indicator where to head would be appreciated.

Here you go! https://github.com/taskrabbit/makara_newrelic_test
makara_newrelic_test [master] ~> be rake bm_nr
-- create_table("users", {:force=>true})
   -> 0.0580s
-- initialize_schema_migrations_table()
   -> 0.0065s
Rehearsal ------------------------------------------
insert   8.660000   0.200000   8.860000 (  9.134924)
select   2.600000   0.060000   2.660000 (  2.768211)
-------------------------------- total: 11.520000sec

             user     system      total        real
insert   8.670000   0.150000   8.820000 (  9.086117)
select   2.520000   0.040000   2.560000 (  2.667939)
makara_newrelic_test [master] ~> be rake bm
-- create_table("users", {:force=>true})
   -> 0.0358s
-- initialize_schema_migrations_table()
   -> 0.0014s
Rehearsal ------------------------------------------
insert   0.260000   0.030000   0.290000 (  0.418320)
select   0.080000   0.010000   0.090000 (  0.157242)
--------------------------------- total: 0.380000sec

             user     system      total        real
insert   0.280000   0.020000   0.300000 (  0.419354)
select   0.090000   0.010000   0.100000 (  0.167273)

Let me know if there's anything I can do to help.

https://github.com/taskrabbit/makara/issues/71 will likely be of interest as well.

Based on the rubygem releases I believe the issue will be found between <IP_ADDRESS> - <IP_ADDRESS>. <IP_ADDRESS> runs fine, 3.6.9 takes 40x longer. https://github.com/newrelic/rpm/compare/<IP_ADDRESS>...<IP_ADDRESS>

https://github.com/taskrabbit/makara/pull/75
I'm seeing an improvement in this branch - but it's still 3x slower
makara_newrelic_test [master] ~> be rake bm_nr
-- create_table("users", {:force=>true})
   -> 0.0723s
-- initialize_schema_migrations_table()
   -> 0.0040s
Rehearsal ------------------------------------------
insert   1.130000   0.080000   1.210000 (  1.449123)
select   0.490000   0.030000   0.520000 (  0.615719)
--------------------------------- total: 1.730000sec

             user     system      total        real
insert   1.180000   0.050000   1.230000 (  1.425478)
select   0.370000   0.010000   0.380000 (  0.471990)
makara_newrelic_test [master] ~> be rake bm
-- create_table("users", {:force=>true})
   -> 0.0439s
-- initialize_schema_migrations_table()
   -> 0.0017s
Rehearsal ------------------------------------------
insert   0.290000   0.030000   0.320000 (  0.485325)
select   0.080000   0.010000   0.090000 (  0.165335)
--------------------------------- total: 0.410000sec

             user     system      total        real
insert   0.270000   0.020000   0.290000 (  0.419044)
select   0.090000   0.010000   0.100000 (  0.170199)

Thanks @mnelson, that's going to be super helpful in tracking this down! I probably won't be able to dig deep on this until next week, but having those dups will be huge in getting to the bottom of this. Thanks again!

As expected, that repro case was awesome :sparkles:. Thanks again @mnelson for putting it together!
The slowdown is happening at this point in newrelic_rpm: https://github.com/newrelic/rpm/blob/5560d8ecff0dcece53a80edbc4535cc60fc188d8/lib/new_relic/agent/instrumentation/active_record_subscriber.rb#L87-L93. On Rails 4.x+, New Relic uses ActiveSupport::Notifications, but the payload only gives us the object_id of the connection. Because we need more information off the connection (database adapter type for instance), we search through the connection list and that's where the bottleneck is.
Here's a slightly nicer version of the same code from the Ruby agent that you can put in a task or script to run:
n = 1000
Benchmark.bm do |x|
  x.report do
    n.times do
      connections = ::ActiveRecord::Base.connection_handler.connection_pool_list.map do |handler|
        handler.connections
      end.flatten

      connection = connections.detect { |cnxn| cnxn.object_id == 1234 }
    end
  end
end

When I run this in a Rails project with the mysql adapter, I get the following timing:
       user     system      total        real
   0.030000   0.000000   0.030000 (  0.033124)

Running that with makara instead (doesn't matter if New Relic's in the picture for this), yields this:
       user     system      total        real
   1.600000   0.030000   1.630000 (  1.625922)

I haven't dug into makara to see about why this path is slow. Stackprof gives some slightly confusing results, but points to Delegator and SimpleDelegator at lot.
FWIW, we don't really like this connection lookup, and are continuing to look for a solution from the Rails end to avoid it. But even if we get an update it'll only be available in some as-yet-unavailable Rails version, so this code is likely to live on even then as a fallback on Rails 4.x.
Any thoughts where to go from here @mnelson?

@jasonrclark Is there an issue with using ObjectSpace._id2ref(object_id) rather than detecting the object by iterating the connections? I agree that there's a problem somewhere but from my quick attempt an id2ref lookup at least avoids it.

Btw, the repro is updated with some id2ref rake tasks https://github.com/taskrabbit/makara_newrelic_test

@mnelson There actually are problems with _id2ref--we had it that way for our original implementation of this code and had to move to the more complex scheme we've got today.
The two issues were that 1) _id2ref performs really badly on Rubinius and 2) it isn't even supported on JRuby without passing a special startup flag (for similar perf reasons).
Given those constraints, we can't go back to using _id2ref. With your knowledge of the project, does it seem possible to optimize the connection code? If so, that seems like the best option to me.
Failing that, I've got an idea or two about how we could let you override the connection retrieval. It's a little awkward because of load ordering (I expect makara will typically be required before newrelic_rpm), but I know how we could do it.

With a little more digging I've determine that the bottleneck occurs due to the flatten invocation. My guess is that there's something weird going on with object comparison or array determination due to the delegate. Maybe even down at the C level rb_check_array_type. I'll keep poking around.

FWIW, this is a potential fix for the NR codebase - even though I understand the real problem is in Makara.
        connection = ActiveRecord::Base.connection_handler.connection_pool_list.detect do |l|
          l.connections.detect do |c|
            c.object_id == 4
          end
        end

That's a great idea @mnelson. Tested it out, and with a little tweaking (can't use the outer detect since that returns the connection pool, not the inner connection), I was able to use this instead.
It also neatly avoids a couple extra object allocations, so in addition to helping makara out, it's a small win for every ActiveRecord 4.x client using newrelic_rpm :tada:
This isn't likely to make it in the next release of the agent which is baking internally already for release, but I'll ping here when we have a branch of the agent to test against directly.

Hi guys. I just got into the same issue. What is the workaround while it is not fixed?

With reference to the table above, you can use one of the makara or rpm versions which does not have the performance issue. I have a branch which somewhat improves the situation but it does not fix it completely. You can absolutely give that branch a try but, as I said, it won't completely fix the issue. The underlying perf issue seems to be in ruby's Delegator class and I'm still working on finding a solution which at the very least avoids the problem.

Thanks @danicuki, added to the table.

Hey y'all - we've just released version 3.11.2 of the newrelic_rpm gem, which should address this issue. Thanks again for your help in isolating and fixing it!

Makara Version 	--->  0.3.3
AR Version 	        --->  3.2.14
RPM Version 	        --->  <IP_ADDRESS>6
Is this configuration tested ?

@nikhilvs Any newrelic_rpm < 3.11.2 and >= 3.7.2 will have the regression. I'd recommend upgrading newrelic_rpm to avoid the problem.
@mnelson, could we mark down when the fix came through in the table to avoid folks having to follow the whole comment thread to find out what happened?

@jasonrclark done. Thanks.


Strict mime type negotiation

Right now, if you have a controller like this:
class PostController < ApplicationController
  respond_to :json

  def index
    @posts = Post.something_expensive
    respond_with @posts
  end
end

And you request HTML format we will run the action even knowing that the response will be a 406 status.
I'm proposing:
strict_respond_to :json

or
respond_to :json, strict: true

that will install a before action callback that will return the 406 response before even hitting the action.

@rafaelfranca I'm going to grab this to work over the holiday


Adding an invalid dependency doesn't give error

In dev mode, edit the pom.xml to add a dependency which doesn't exist e.g.
<dependency>
    <groupId>io.openliberty.features</groupId>
    <artifactId>abcdefg</artifactId>
    <version>1.0</version>
</dependency>

Dev mode shows the following but doesn't show any failure.
[INFO] Pom has been modified
Downloading from central: https://repo.maven.apache.org/maven2/io/openliberty/features/abcdefg/1.0/abcdefg-1.0.jar

We should also ensure this works properly when there are multiple repositories (maven central + something else), e.g. by having this to your pom:
<repositories>
		<repository>
			<id>jitpack.io</id>
			<url>https://jitpack.io</url>
		</repository>
</repositories>

It should only give a failure if none of the connected repositories have the specified dependency.

Should this also handle the case where repositories are added?

Say an unhandled dependency has been added to the pom and an error is displayed. Then a handled dependency is added to the pom without removing the unhandled dependency, should the user continue to see the error from the unhandled dependency?

@kathrynkodama

If it's possible to hot update the list of repositories, that would be good, but it doesn't need to be part of this issue.
They should not continue to see the error.
Typically if there is a custom repository defined in the pom, Maven will look in that one before looking in Maven Central.  It should not give an error if it can't be found in the custom repo but can be found in Maven Central.

@kathrynkodama I had misinterpreted your second question.  If the invalid dependency is still there, it should continue to show the error every time you update the pom.


FVT test generation code is taking 60% of overall build time

Currently the open types test generator is taking up 60% (7 minutes) of the overall build time - taking a typical macos build to around 11:30. This can impact developer productivity and has been observed by a number of people.
It would be worthwhile looking into:

Why it is taking so long. Can the code be improved?
Adding an option to skip - at least for developers building their own code locally

The first would be my preferred option if we do find a significant issue as more validation is good. We should understand what the generator is doing, and whether it is effective - though the second is ok since the open types are updated less often. I would suggest keeping the tests in the commit build regardless.
On skipping, note that I experienced an issue with profiles & submodules when working on https://github.com/odpi/egeria/issues/771 and instead adopted the '-Ddocker' flag to enable docker builds (here we want a flag to disable IMO if we go down that route)
cc: @davidradl @bogdan-sava

I'm have the same issue as well. Is there any update? Thanks!

I see a PR is proposed to support skipping (which I agree with). Let's leave this issue open to improve the performance when this step is undertaken
see https://github.com/odpi/egeria/pull/1008/files

@innerTide as an aside i notice your build is taking 32 mins - that's about 3 times my duration/official build. Maybe you have other issues/limitations too.
Also note that when I tested previously a windows build was about 2.5x slower than either MacOS or linux (though a build in a vm on windows or using WSL was close to linux)

@planetf1 This is my first build so it took some time to download dependencies from Maven central. But I will try WSL :) Thanks!

Verify builds are now down to 14 minutes . Builds with FVT (master after merging, daily) remain at 40 mins or so on official LF systems

Suggest leaving this open to look at actual test code and confirm it needs to take this long when run

In order to have dev builds I do recommend you to run:
mvn -pl '!org.odpi.egeria:open-metadata-assemblies' clean install -DskipTests -DskipFVT
It excludes assemblies also. On my computers finishes under 2 min.

-pl param is a built in functionality in maven

If you don't need the UI for the work in progress...
mvn -pl '!org.odpi.egeria:open-metadata-assemblies' clean install -DskipTests -DskipFVT -DskipUI
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  51.179 s
[INFO] Finished at: 2019-05-31T10:23:11+03:00
[INFO] ------------------------------------------------------------------------

A further observation.
When I build within the open-metadata-test tree I get
14:58:12,814 [INFO]
14:58:12,815 [INFO] --- exec-maven-plugin:1.6.0:java (default) @ open-types-test ---                                                                                14:58:12,971 [INFO]

yet if I build as part of the whole project:
15:05:34,783 [INFO] --- exec-maven-plugin:1.6.0:java (default) @ open-types-test ---
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
15:19:06,896 [INFO]
15:19:06,896 [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ open-types-test ---

I opened up #1256 for the logger, though it's slightly unclear why there is a difference, since both runs used the same maven invocation.
More relevant behaviour for THIS issue, is that the operation is quick. Very quick.
Overall the difference is
Full
15:19:37,519 [INFO] Open Metadata Open Types Test Resources ............ SUCCESS [  0.195 s]
15:19:37,519 [INFO] Open Types Test generator .......................... SUCCESS [  0.493 s]                                                                             15:19:37,519 [INFO] Open Types Test execution .......................... SUCCESS [14:03 min]

Just fvt
14:58:59,888 [INFO] Open Metadata Open Types Test Resources ............ SUCCESS [  0.399 s]
14:58:59,889 [INFO] Open Types Test generator .......................... SUCCESS [  7.183 s]
14:58:59,890 [INFO] Open Types Test execution .......................... SUCCESS [ 49.335 s]

In the debugger, the test run takes around a minute -- so the former behaviour.
OmrsBeanGenerator.generateTopReferenceFile takes 93% of the CPU. In fact the replaceAll() call in writeTopReferenceAttributesToFile takes 50%, with a further 20% in token replacement.
This may be possible to optimize but doesn't explain the 5-15 minutes taken in a full build.

@planetf1 I am wondering whether the heap and stack jvm settings might be worth checking and whether the full build needs to fight for memory in some way that the the fvt case does not.  Or maybe that the full case bring in a dependancy that effects the runtime performance adversely..

I added some debugging (problematic due to the way maven integrates slf4j), and refactored the pom to use maven-antrun instead of exec, as this allows for extra configuration checks.
I also changed the generator to return 1 if generation fails due to bad context (current working directory) and fail the build -- since this was the reason builds are sometimes so quick.... this was partly masked by the fact the maven clean implementation had a typo, so 'clean' was not working.
Having done this, there remains a difference between a full build (10 mins vs 90 mins). The greater time is probably due to logging - and whilst slf offers control, within the maven context it's awkward to adjust. It may be prudent to add a conditional around the logging using a new system variable.
Will now check the logs with timings

I'm returning to this as the large amount of code and/or time are causing knock-on effects in build time,  sonar scans, security checks, random memory failures in the build

Some key times in the generation
     [java] 14:50:26.192 [main] DEBUG org.odpi.openmetadata.fvt.opentypes.generators.OmrsBeanGenerator - Generating Enum files
     [java] 14:50:26.722 [main] DEBUG org.odpi.openmetadata.fvt.opentypes.generators.OmrsBeanGenerator - Generating Classification files
     [java] 14:50:27.351 [main] DEBUG org.odpi.openmetadata.fvt.opentypes.generators.OmrsBeanGenerator - Generating Classification bean factory
     [java] 14:50:27.354 [main] DEBUG org.odpi.openmetadata.fvt.opentypes.generators.OmrsBeanGenerator - Generating OMRS Relationship to Lines
     [java] 14:50:27.369 [main] DEBUG org.odpi.openmetadata.fvt.opentypes.generators.OmrsBeanGenerator - Generating Entity related files
     [java] 14:50:29.876 [main] DEBUG org.odpi.openmetadata.fvt.opentypes.generators.OmrsBeanGenerator - Generating Relationship files
     [java] 14:50:31.679 [main] DEBUG org.odpi.openmetadata.fvt.opentypes.generators.OmrsBeanGenerator - Generating Reference files
     [java] 15:03:16.791 [main] DEBUG org.odpi.openmetadata.fvt.opentypes.generators.OmrsBeanGenerator - Generating OMRS Beans Accessor file                                  [java] 15:03:17.388 [main] DEBUG org.odpi.openmetadata.fvt.opentypes.generators.OmrsBeanGenerator - Generating OMRS Beans Accessor file
     [java] 15:03:18.534 [main] DEBUG org.odpi.openmetadata.fvt.opentypes.generators.OmrsBeanGenerator - Ending test code generation

It is the reference files that are taking a long time
Each line of debug for the reference files shows:
    [java] 14:51:15.896 [main] DEBUG org.odpi.openmetadata.fvt.opentypes.generators.OmrsBeanGenerator - Generating top reference file open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/DataProfileAnnotation/DataProfileAnnotationReferences.java

There are 180 files
But interestingly they are created many times ie
➜  egeria git:(sadvt3) ✗ cat ~/log3 | awk '{print $11}' | sort | uniq -c | head                                                                          git:(sadvt3|✚1
    564 open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/APIOperation/APIOperationReferences.java
    564 open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/APISchemaType/APISchemaTypeReferences.java
    564 open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/ActorProfile/ActorProfileReferences.java
    564 open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/Annotation/AnnotationReferences.java
    564 open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/AnnotationReview/AnnotationReviewReferences.java
    564 open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/Application/ApplicationReferences.java
    564 open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/ArrayDocumentType/ArrayDocumentTypeReferences.java
    564 open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/ArraySchemaType/ArraySchemaTypeReferences.java
    564 open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/Asset/AssetReferences.java
    564 open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/AssetOwner/AssetOwnerReferences.java

From logging and inspection we can see that the process of building the references is expensive:
ie
        List<org.odpi.openmetadata.fvt.opentypes.model.OmrsBeanReference> omrsBeanReferences = omrsBeanModel.getOmrsBeanReferences();
``` << that is 282

With an inner iterator around

        for (String entityName : entitiesWithRelationships) {

Or looking at logs, per file we have these files being created each 564 times (need to check if double logging)
The first file touched is open-metadata-test/open-metadata-fvt/open-types-fvt/open-types-test/src/main/java/org/odpi/openmetadata/fvt/opentypes/entities/CertificationType/CertificationTypeReferences.javaand this is then created another 564 times in the following 15 minutes or so (not all at once).
Examining the logic

Added optimization when creating entity reference file -- store entityName in a set, only create top references if not already done. - the algorithm was resulting in these files being created many times.
Alternative fixes may be possibly by modifying the searches, but I opted for light touch.
This brings execution time down from 15 minutes to around 43s
There are further optimizations on string processing possible, but this is the 'big win'

Leaving logging in build for now - may remove it later, but need to see how this works in a proper PR/build environment

Now getting times like
17:18:53,368 [INFO] Open Metadata Open Types Test Resources ............ SUCCESS [  0.189 s]
17:18:53,369 [INFO] Open Types Test generator .......................... SUCCESS [  0.831 s]
17:18:53,370 [INFO] Open Types Test execution .......................... SUCCESS [ 43.766 s]

And this is with the generator running
however on build machine:
18:34:18 [INFO] Open Metadata Deployment ........................... SUCCESS [  0.303 s]
18:34:18 [INFO] Open Metadata Test Resources 1.1-SNAPSHOT .......... SUCCESS [  0.499 s]
18:34:18 [INFO] ------------------------------------------------------------------------

So something is odd that is aborting the build (though it returns success)

To close out this issue -- the above output is correct for a PR build, since fvt tests are no longer run there. This was initially done to avoid running any long tests (or those with external dependencies).
The merge master build now runs the code generation in around 15s, another 2s for reading the archive. These then take 44s to compile. The total runtime for building the classes & executing is around 72s


openshift: Deploy webhook using internal CA instead of cert-manager

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
OpenShift does not include cert-manager by default and moreover includes
its own way of generating keys and certificates for services:

https://docs.openshift.com/container-platform/4.7/nodes/pods/nodes-pods-secrets.html#nodes-pods-secrets-certificates-creating_nodes-pods-secrets
https://docs.openshift.com/container-platform/4.7/security/certificate_types_descriptions/service-ca-certificates.html

and providing the CA bundles for webhook configuration:

https://docs.openshift.com/container-platform/4.7/security/certificates/service-serving-certificate.html#add-service-certificate-mutating-webhook_service-serving-certificate

While we could have add a dependency on the OpenShift Operator level, it is not needed and we can instead just use the built-in CA.
Which issue(s) this PR fixes:
None

Does this PR have test?
Not specifically, but we can run existing tests on OCP

Special notes for your reviewer:
Marking this as WIP because I haven't tested myself past deployment, but I'm interested in early feedback.
Does this PR introduce a user-facing change?

When deploying on OpenShift, cert-manager is no longer required.

Codecov Report

Merging #740 (7e1d8b0) into main (d993086) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #740   +/-   ##
=======================================
  Coverage   53.94%   53.94%
=======================================
  Files          41       41
  Lines        4121     4121
=======================================
  Hits         2223     2223
  Misses       1831     1831
  Partials       67       67

self-nack, the non-dev openshift deployment is missing some annotations:
diff deploy/openshift-dev.yaml deploy/openshift.yaml
1705c1705
<         image: image-registry.openshift-image-registry.svc:5000/openshift/security-profiles-operator:latest
---
>         image: gcr.io/k8s-staging-sp-operator/security-profiles-operator:latest
1759c1759
<         image: image-registry.openshift-image-registry.svc:5000/openshift/security-profiles-operator:latest
---
>         image: gcr.io/k8s-staging-sp-operator/security-profiles-operator:latest
1867,1868d1866
<   annotations:
<     service.beta.openshift.io/serving-cert-secret-name: webhook-server-cert
1884,1885d1881
<   annotations:
<     service.beta.openshift.io/serving-cert-secret-name: metrics-server-cert

On Thu, Dec 02, 2021 at 07:23:58AM -0800, Juan Osorio Robles wrote:

@JAORMX requested changes on this pull request.

@@ -154,6 +154,8 @@ $(BUILD_DIR)/kubernetes-split-yaml: $(BUILD_DIR)
deployments: $(BUILD_DIR)/kustomize $(BUILD_DIR)/kubernetes-split-yaml manifests generate ## Generate the deployment files with kustomize
$(BUILD_DIR)/kustomize build --reorder=none deploy/overlays/cluster -o deploy/operator.yaml
$(BUILD_DIR)/kustomize build --reorder=none deploy/overlays/namespaced -o deploy/namespace-operator.yaml

cp -f deploy/base/certificate.yaml deploy/overlays/openshift/no_certificate.yaml

I'm not sure I get the reasoning for this. the overlay should have everything to build the openshift.yaml and openshift-dev.yaml files.

Right, so the deploy/base/certificate.yaml file contains manifests to
create an Issuer and two Certificate, all of the three manifests use
kinds from the cert-manager.io/v1 API group. This API group will not be
available if we don't install cert-manager on OCP, so what we need is to
skip the creation of these objects altogether.
I didn't find a better way with kustomize to skip a manifest as a whole
other than mark each object to delete with $patch: delete. And because
I want to be sure we won't miss any newly added object from
deploy/base/certificate.yaml I copy the file and then sed the ---
YAML separators to be instead ---\n$patch:delete.
It's still hacky, of course, but I didn't find a better way.

/retest

heh, previously e2e-ubuntu was passing and e2e-fedora was failing and now it's the other way around.
Either way, this PR only touched the openshift overlays which are not tested anyway..
/retest

@JAORMX PTAL


fix(material/datepicker): Fix raw date value being compared

In the function isInRange numeric values are supposed to be compared. It is being called from _isInRange where value is compared to startValue and endValue which are calculated in _setRanges using _getCellCompareValue which returns a number derived from Date derived from the original generic date object. value though is not a number like the typing might suggest, but a generic date object retrieved from MatCalendarCell.rawValue.
The correct way to compare these values would be to derive all 3 startValue, endValue and value using _getCellCompareValue, luckily the MatCalendarCell already contains such a derived value: compareValue, which is being derived using _getCellCompareValue
Why is this a problem and why isn't it a problem for most?
Normally when using Date as your generic date object of choice, the isInRange function implicitly calls the valueOf() function from Date, which happens to be equivalent to the logic in _getCellCompareValue.
But we are using the Picker with Temporal.PlainDate (using a polyfill), which explicitly forbids calling the valueOf() function and the logic breaks down. This change should not result in any visible change for anyone using generic date objects that already do the conversion to unix timestamp implicitly, just that it's done explicitly now, but it will fix compatibility with other choices that don't do this.
Also on another note: The current way this is implemented violates TypeScript constraints, because it passes a Date or another date type to a function which only accepts a number, but because it's any, typescript doesn't complain.

Force pushed for a rebase and to fix the commit message format

@cromefire sorry for the delay here. Can you run yarn ng-dev format files src/material/datepicker/calendar-body.ts and push the formatting changes?

There you go

The lint failure here is unrelated and will be fixed in main.

Anything else that needs to be done from my side?

Not for now. I'm running it against our internal checks and will merge it if everything passes.