Improving performance of tree traversal on getViewState function

Optimising getViewState tree traversal to improve performance on folders with too many children.
Context
We are currently running VSCode in a monorepo folder that has hundreds of thousands of subfolders/files. There are a few performance issues happening due to that and the getViewState has been identified as one of them.
Problem
Whenever a folder was opened, such as branches (88K children), the UI would freeze when opening new folders, changing tabs and also every few seconds. The reason for that was because the onWillSaveWorkspace is called every few secs and whenever VSCode becomes the active tab to save the list of folders that are expanded in storage so the user can refresh the page and still have their expanded folders open.
The issue was that the getViewState() function that returns a list of expanded folders was traversing the tree too slowly.
Solution
In this case, it does not matter by which order we traverse the tree to get all states. Array.shift() has O(n) performance while Array.pop() has O(1), therefore, changing it to pop makes it N times faster.
In the image below you can see that after changing from BFS traversal to DFS, the function improved from an average of 4.5 seconds to 4 milliseconds for the monorepo that contains a folder with a 100K children.
Before:

After:

You get:

5 ⭐ for the context, problem & solution description
5 ⭐ for the solution
5 ⭐ for renaming queue to stack

Fantastic observation and fix, thanks!

Thank you for the compliments!
I am glad it's merged.


WIP: feat: uggla feat/factorize exporter (fixing conflicts)

for the notice, the extra tests : https://github.com/hubblo-org/ansible-scaphandre/blob/master/validate_gh.yml#L49


[feature] Proposal to change recursive call in processHelper to iterative solution

Is your feature request related to a problem? Please describe.
The processHelper function currently employs tail recursion to avoid stack overflow, which is beneficial for stack safety. However, the current design has noticeable performance drawbacks when handling deeply nested structures, taking multiple seconds to process the example case.
Describe the solution you'd like
I suggest refactoring the processHelper function to use an iterative approach rather than a recursive one. This could potentially speed up the function's runtime performance, making it more efficient for handling deeply nested loops.
Additional context
Here is a Go code snippet to replicate the issue. When run, this test case takes multiple seconds to complete, signifying a need for optimization.
sd := SimpleDoc{
   Issuer: "google.com",
   Info:   "this is a cool document",
   Nested: []SimpleDoc{},
}
cur := sd
for i := 0; i < 4000; i++ {
   k := SimpleDoc{Issuer: "google.com", Info: fmt.Sprintf("this is a cooler nested doc %d", i), Nested: []SimpleDoc{cur}}
   cur = k
}
// marshal cur to json
blob, _ := json.Marshal(cur)

// create a document
overflowDoc := processor.Document{
   Blob:   blob,
   Type:   simpledoc.SimpleDocType,
   Format: processor.FormatJSON,
}

Thanks for opening the issue! @neilnaveen is this something you'd like to work on - or should i label it as help wanted!

I will work on this. Thanks

completed with: https://github.com/guacsec/guac/pull/1245


Add missing eslint dependency to readme.md

I saw the errors, @mightyiam, but I don't know what subject and type, which are supposed to be non-empty, are. Could you please clarify?
Also, I will not be able to amend my previous commits as I've sent them through GitHub's web interface. Would you like me to close this PR, and send a new one?

@gaborluk regarding the commit message syntax:
https://www.conventionalcommits.org
Regarding amending the commits; it is possible. It's just a branch with commits in it:
https://github.com/gaborluk/eslint-config-standard-with-typescript/tree/patch-1
You can clone your fork, checkout the branch and amend the commits.
Or make a new one, if you prefer.

Thank you for the guidance, @mightyiam. I apologize for not recognizing this convention.
All should be fine now.

Thank you for your contribution, @gaborluk !

Sure thing, @mightyiam!


Improvement suggestion: Iterate over ip addresses only once

In https://github.com/django-pci/django-axes/blob/master/axes/decorators.py#L109, a list of ips is created by stripping whitespace from the result of x_forwarded_for.split(',').
I think this can be rewritten like so:
else:
    for ip_raw in x_forwarded_for.split(','):
        ip = ip_raw.strip()
        ...

Thoughts? If ok, I can create a pull request with this isolated change.

Sure man, please send the PR. Thanks.


Can we build it for android device

Hi @kaffelars
Is this project support android device
Thank you so much, the project looks awesome!

Hi, and thanks!
I don't have any experience with building for android, and don't have any plans to look into that. But SDL2, which this project is built on, has an android port, so it could be fairly straight forward. However, it would probably require a rebuild of the control system for touch screen instead of keyboard+mouse.
Feel free to try making an android version if you want!


i want to no why i cannot show the plot when running demo.py

i want to no why i cannot show the plot when running demo.py

the figure is only blank

Did you solve this problem, I had the same situation

Did you solve this problem, I had the same situation

i just install matplotlip and qt5 ，then itis OK

Did you solve this problem, I had the same situation

i just install matplotlip and qt5 ，then itis OK

Did you solve this problem, I had the same situation

i just install matplotlip and qt5 ，then itis OK

can i ask how to install qt5

Did you solve this problem, I had the same situation

i just install matplotlip and qt5 ，then itis OK

I solved the problem, thank you very much

Excuse me, why is my effect so bad

 Excuse me, why is my effect so bad

The same situation counters to me. Have you solved it yet?


update test

Goal

Testing

Release Notes

WHAT:
WHY:
WHO:

#836  👈
master

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

Join @nelsitoPuglisi and the rest of your teammates on  Graphite


Update index.tsx

Add a title to the main page

i forgot to put the import Head from "next/head";


support host variables

Playbooks that take advantage of host variables like so
http_port: "{{ default_http_port | default(hostvars[groups['Atlanta'][0]]['http_port']) }}"

would need an inventory that has host variables like so
[atlanta]
host1 http_port=80 maxRequestsPerChild=808
host2 http_port=303 maxRequestsPerChild=909

Ho @sjwl, definitely something to investigate. Thank you for reporting.

My workaround is using a seperate null_resource with the ansible provisioner for each instance I want to provision with Ansible.
That way I can pass specific vars per host through the extra_vars of the ansible provisioner.

I will take a look at this. Ideas are welcomed, though. Maybe there is an alternative, more intuitive may for handling this.


How to call payable method?

Anyone please explain how to call payable method of a contract to transfer ether.

This is not implemented. We currently cannot path an Ether value to transact.

Client.transact(contract, function, *args, **kwargs) now accepts a tx_value parameter.


how to reuse the session for many different input

as shown in the example usage, the session was destoried after run once, how to reuse the session for other different inputData? Thank you.

Hi,
You can simply update the data in the input tensor (or tensors, if you have multiple inputs), and then call the session's Run() function again.  Every time you call session.Run(), the current contents of the input tensor will be re-read, and the output tensor will be re-written.  The session itself should be usable no matter how many times you call session.Run().
As a brief example:
    // ...
    inputTensor, err := ort.NewEmptyTensor[float32](inputShape)
    defer inputTensor.Destroy()
    outputTensor, err := ort.NewEmptyTensor[float32](outputShape)
    defer outputTensor.Destroy()

    session, err := ort.NewSession[float32]("path/to/network.onnx",
        []string{"Input 1 Name"}, []string{"Output 1 Name"},
        []*Tensor[float32]{inputTensor}, []*Tensor[float32]{outputTensor})
    defer session.Destroy()

    inputTensorUnderlyingData := inputTensor.GetData()
    outputTensorUnderlyingData := outputTensor.GetData()

    // This loop assumes the hasMoreInputData() returns a boolean if more inputs are needed, and
    // the getNextInputData() function returns a slice of float32's of the same size as the input tensor's
    // underlying data.
    for hasMoreInputData() {
        copy(inputTensorUnderlyingData, getNextInputData())
        err := session.Run()
        processOutputData(outputTensorUnderlyingData)
    }

I hope this helps!

Hello again, updating this issue in case someone looks at it in the future:
As of commit 7bf5a6e (PR #14), the library now supports the DynamicSession and DynamicAdvancedSession types, which despite their long names, are no more difficult to use than the old Session and allow passing lists of input and output tensors to their Run(...) functions.


Add sublime terminal code to append to ~./bash_profile

Figure out if there is an option to add Sublime 3 instead of 2.

Done


Added Head First Python, Second Ed.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

@Tess2016 I tried to clean this up as best as I could and resolve a merging conflict with images.

@Tess2016 Thank you!


Investigate which options for check permissions are more secure for each case

Mentioned in https://github.com/stanfordnmbl/opencap-api/pull/62#discussion_r1307753592
Check which option is better to check permissions and make sure it is secure.

I have been looking into this.
Currently, we are using two approaches to check permissions:

permission_classes: Are defined in the class are applied to every method of that class. Like here.
check_object_permission function: Is called inside of a function, and checks if the request information (which contains user and session information) has permissions before modifying or accessing a specific object. Like here.

The permission classes are defined here, and are applied to retrieve, delete and modify actions according to documentation. I think we are using the check_object_permission in cases where, there is public information (like a session) and everyone can retrieve it, but only the owner can modify it. So I guess we use the permission_classes to check if an user can access to the object, and then we check if that user has permissions to modify it using the check_object_permission function. It is a little confusing, so I could be wrong here.
Based on this, I don't think we should select one or another option to check for permissions, since each one is doing a different thing. What are your thoughts? @antoinefalisse @suhlrich


Heath go-live (app customization updates)

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

File
Status
Preview URL
Details

msteams-platform/concepts/build-and-test/app-studio-overview.md
:white_check_mark:Succeeded
View

msteams-platform/concepts/design/enable-app-customization.md
:white_check_mark:Succeeded
View

msteams-platform/resources/schema/manifest-schema-dev-preview.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

msteams-platform/assets/images/Cards/full-width-adaptive-card.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/Cards/small-width-adaptive-card.png
:white_check_mark:Succeeded
View

msteams-platform/concepts/build-and-test/app-studio-overview.md
:white_check_mark:Succeeded
View

msteams-platform/concepts/design/enable-app-customization.md
:white_check_mark:Succeeded
View

msteams-platform/resources/schema/manifest-schema-dev-preview.md
:white_check_mark:Succeeded
View

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


enable validate to handle plain and encrypted assertions

Description is buried in one of the two commits, roughly speaking this bolts on encrypted assertion support.

Thanks for the contribution!
This has a number of unrelated changes, so I can't take the whole changeset as is, but I can work out the needed bits.

I finally got around to merging this with some changes.  Please let me know if you have problems in your environment.
For the future, I'd rather not have whitespace and import reordering changes mixed in with functional changes. There was also a change setting the "ID" attribute on the response, which I can take if that is generally applicable and you have a test case demonstrating the issue.  But, as the commit log doesn't mention exactly what problem was fixed, I left that hunk out.  I'd have merged this a long time ago if it were a simple matter of clicking 'Merge pull request' instead of needing to make some edits here and there.
Regarding test environment, this project is now hooked up to travis-ci so it should be easier to do test cases going forward.


Protect Validator API

resolves #1391
resolves #1380
For validator api:

Do a check before processSlots() to make sure our node is not suspended if epoch is too far in the future
throw Error with detailed sync status if our node is syncing

Do you happen to know which http response code fastify sends back in the errored case?

it's 500 as in {"statusCode":500,"error":"Internal Server Error","message":"Node is syncing, status: {\"headSlot\":\"69568\",\"syncDistance\":\"26318\"}"}

You should add test case to rest api unit tests

I added should return 503 when node is syncing

We should deal with sync status bug before merging. We currently don't handle situation before head block, when we are in waitingForPeers and when target < current slot

This seems like it should be tackled as a separate issue.
We also may want the API to still work in that case, or at least when our head is at the current epoch.

We should deal with sync status bug before merging. We currently don't handle situation before head block, when we are in waitingForPeers and when target < current slot

This seems like it should be tackled as a separate PR.
We also may want the API to still work in that case, or at least when our head is at the current epoch.

True but we cannot merge this before fixing this silly bug 😅

file conflicts

@mpetrunic > How does logs look like on validator side?
there is no error, it's like
2020-08-18 15:13:24  []                 info: Checking genesis time and beacon node connection
2020-08-18 15:13:24  []                 info: Waiting for genesis time waitTime=2s
2020-08-18 15:13:24  []                 info: Checking genesis time and beacon node connection
2020-08-18 15:13:24  []                 info: Waiting for genesis time waitTime=2s
2020-08-18 15:13:27  []                 info: Checking genesis time and beacon node connection
2020-08-18 15:13:27  [VALIDATOR 0-8]    info: Chain start has occured!
2020-08-18 15:13:27  [VALIDATOR 0-8]    info: on new block epoch epoch=0, validator=0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c

@mpetrunic

How does logs look like on validator side?

there is no error, it's like
2020-08-18 15:13:24  []                 info: Checking genesis time and beacon node connection
2020-08-18 15:13:24  []                 info: Waiting for genesis time waitTime=2s
2020-08-18 15:13:24  []                 info: Checking genesis time and beacon node connection
2020-08-18 15:13:24  []                 info: Waiting for genesis time waitTime=2s
2020-08-18 15:13:27  []                 info: Checking genesis time and beacon node connection
2020-08-18 15:13:27  [VALIDATOR 0-8]    info: Chain start has occured!
2020-08-18 15:13:27  [VALIDATOR 0-8]    info: on new block epoch epoch=0, validator=0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c

Maybe we should have logs so user knows something is wrong?

@mpetrunic

How does logs look like on validator side?

there is no error, it's like
2020-08-18 15:13:24  []                 info: Checking genesis time and beacon node connection
2020-08-18 15:13:24  []                 info: Waiting for genesis time waitTime=2s
2020-08-18 15:13:24  []                 info: Checking genesis time and beacon node connection
2020-08-18 15:13:24  []                 info: Waiting for genesis time waitTime=2s
2020-08-18 15:13:27  []                 info: Checking genesis time and beacon node connection
2020-08-18 15:13:27  [VALIDATOR 0-8]    info: Chain start has occured!
2020-08-18 15:13:27  [VALIDATOR 0-8]    info: on new block epoch epoch=0, validator=0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c

Maybe we should have logs so user knows something is wrong?

Last time I did see a lot of errors thrown at validator side because nodes run regular sync. With the latest code it does not run regular sync and nodes are up to date from the beginning (since I added genesisDelay in multinode test) so we don't see any errors anymore.


upon refreshing of the browser, the URLs containing 'hypen' is not going through angular $routeProvider .when(), but directly requesting the server

I am using MEAN Stack, and jade for html templating for developing a project. Since I am using jade all the .when() of the $routeProvider goes through the server and then rendered. Things were absolutely fine until recently I added $httpProvider.interceptor for authenticating each request. Basically, I started using JWT token based authentication and before requesting anything to the server, in my interceptor I am attaching 'Authorization' header. And the first middleware for protected apis I am verifying the token present in the 'Authorization' header. If present then proceed, else send authorization error.
Now, as mentioned in the title of the question. I have a few URLs containing hypen(-) between two words just to increase the readability.
eg: .when('/firstPart/secondPart1-secondPart2/thrirdPart', {
templateUrl: '/path/to/file'
})
this url is working fine if user is going through the normal flow of getting to this url. The problem arises when the user comes to this page and hits the browser's refresh button, as he gets an error 'Authorization header not set'
I did a few research on what and why this is happening, I found the answer in AngularJS not intercepting direct requests from Address Bar. According, to this answer and few others I understood that on refreshing, browser makes a direct request to the server and doesn't go through angular routes, and thus, interceptor that is attaching the Authorization header to each request header is not getting called.
As, suggested by the same link, the workaround is that if auth verification fails make a call to '/', I donot wish to do that as the user has just refreshed the page and he has to ideally get back the same page as he was before he pressed refreshed. I am stuck here on how to do this.
Also, there is another mind–boggling thing i.e., if, I remove the 'hyphen'(-), and make it one word i.e.,
.when('/firstPart/secondPart1SecondPart2/thrirdPart',
{
templateUrl: '/path/to/file'
})
everything works as expected even when the user hits the refresh button. It is first going through the angular router and interceptor attaches the Authorization header and then goes to make a get request for that template.
Wondering, is there any problem in using hyphen in URLs? However, I do not wish to remove the hyphens as I have already used it in many places and also I feel its good to have - between two words that needs to be displayed together in the URL than making them camel cased.
So, finally I have two questions :
How to load the same page as the user was in before he hit refresh, instead of redirecting him to '/' or login url.
The problem explained above, occurs only for hyphenated(-) URLs, what is the problem having '-' in the URL.

Hi, your issue reads like a support question. This github repo is only for bug reports and feature requests. Please try one of the listed Support Channels.


Rename test folder

Tests are automatically included in the sdist if the folder name is "test" (not "tests") (see here). @hofaflo I don't think this has any negative side effects, because pytest doesn't put any constraints on folder names (it runs test_*.py and *_test.py files in any folder).

Nice solution, thanks @cbrnr!


[DOC] Added documentation to retrieve bytearray

I don't see much bytea-specific in the example provided, returning them as part of the query is generally supported. What I'd probably do is provide an example to insert Uint8List instances as bytea, because that is not yet supported out of the box. See comment here: https://github.com/agilord/postgres_pool/issues/1#issuecomment-633002740


How to load .so file in Linux

What version of Go are you using (go version)?

$ go version
go version go1.11.3 linux/amd64

Does this issue reproduce with the latest release?
No
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/rakhil/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/rakhil/go"
GOPROXY=""
GORACE=""
GOROOT="/work/rakhil/go"
GOTMPDIR=""
GOTOOLDIR="/work/rakhil/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build379042172=/tmp/go-build"

What did you do?

What did you expect to see?
Load (.so) file
What did you see instead?
No syscall found in packages.
(I know that it is only for windows. But is there any package for Linux. )
Thanks

Can you specify what you did under "What did you do?"

import "syscall"
import "os"
var (
mododbc32 = syscall.NewLazyDLL("db2cli64.dll")
procSQLAllocHandle     = mododbc32.NewProc("SQLAllocHandle")
procSQLBindCol         = mododbc32.NewProc("SQLBindCol")
procSQLBindParameter   = mododbc32.NewProc("SQLBindParameter")
procSQLCloseCursor     = mododbc32.NewProc("SQLCloseCursor")

)
In the above code I have loaded db2cli64.dll and in Linux, it is db2cli64.so so I cannot load it.
So, Is there any other way to load it.

package main

import "C"
import (
	"log"

	"github.com/rainycape/dl"
)

func main() {
	lib, err := dl.Open("../lib/server/server.so", 0)
	if err != nil {
		log.Fatalln(err)
	}
	defer lib.Close()
	// printC
	var printC func(d *C.char)
	lib.Sym("PrintTestC", &printC)
	printC(C.CString("Prin Example SO funtion"))
}

Please close the issue ;) ... I think that with my answer is enough.

Is there any package that comes GoLang.

I do not know a specific go package for the "linux.so" call. Although "github.com/rainycape/dl" is easier to use than syscall and very light :+1:

Ok. Thanks


Is anyone having issue creating indexes in elasticsearch 8.1.2 from .net6 web app? Works great with elastic 7.x with index pattern instead of dataviews.

I'm also experiencing this issue, but most likely this is due to the fact that this library does not support ES 8.x yet:
the readme states:
From version 8.x there is support for Elasticsearch.net version 7.
Would love to hear when a new release that supports elastic 8.x will be available

With 1 node ES on 8.2.0, I can confirm that it is working with the ES 8.x version.
With multiple node, I can not confirm it yet.


Cannot add back a "removed user" because of pre-existing namespace

BUG EXPLANATION
Hello Portus-devs,
During one of our tests in our Portus instance, I created a new user and then removed it.
Of course that left the namespace in place as part of other bug/feature already discussed elsewhere.
The "problem" is that if I try to add back that same user, I get back the very logical error/consequence
Username cannot be used: there is already a namespace named 'test-username'
STEPS TO REPRODUCE
0- login to Portus and go in the admin section
1- create a new user
2- delete the user created at step #1
3- try to add again the user created at step #1
VERSION INFO
Portus version 2.2 running from the official Docker containers (https://hub.docker.com/r/opensuse/portus/)

Thanks for reporting 👍

This is the specific other issue, "related" to this issue: https://github.com/SUSE/Portus/issues/767

@mssola any idea on when this will be fixed? Was this already assigned to a release/milestone?
Thanks

This should be fixed for the next version. The release schedule is still to be written. Sorry for the inconvenience...


feat(editable-title): make page title editable

Looks good, just found an older bug that might be more obvious now.

Edit the name of a page
Make it longer than e.g.: 15xa
text-overflow: ellipsis strikes back

Looks fine to me! Just to things:

[ ] The Page Tiles should have 12px font-size, not 15px (the chrome bar should stay at 15px as it is now)
[ ] Blurring the title input should save the edited title, not abort it


Minor change to validation pattern for email format

This is a terrific library. Thank you for sharing your work.
This is a minor change to email validation to bring it in line with RFC 5322, section 3.4.1 (link) as mentioned in the JSON schema validation spec (link).
Pattern comes from hmrc/emailaddress (link).

Coverage increased (+0.008%) to 91.159% when pulling 1309d400d086444768fe68d9d77fcb9ca86e9e6a on bryandragon:email-validation into 2bf0cdcb3d177c9ed98dc47ab571b2fe279ea34c on eclipsesource:master.

Great, thank you! Do you need a release containing this fix?

Thanks! No need for a release—our needs are not urgent.


Integrate Gitea with Sourcegraph

Feature Description
There is a product called Sourcegraph https://sourcegraph.com/ that can be integrated with any git host repository.
There was a thread in sourcegraph repo about gitea integration, but it seems that the work on it's integration is blocked. I wonder, are there any plans on it's integration. The initial issue is here: https://github.com/sourcegraph/sourcegraph/issues/343
Is anyone is interested in this integration?

Screenshots
No response

I think it needs to be implemented by Sourcegraph side? Since there is no standard protocol?
What can we do in Gitea Side?

Login with Gitea is already supported in sourcegraph because of oidc, however sourcegraph will need to be able to call Gitea API.


Node URLs are not displayed in the delegated harvesting of a multisig account

Harvesting status is active.

This should be fixed now. There are some other issues with starting for multisig account but this is another issue.
Please close if fixed.

Closing it since the latest release should fix it.


Lambda function CREATE_FAILED

Getting the below error during the "npx cdk deploy" step.
Failed resources:
ServerHostingStack | 10:28:27 AM | CREATE_FAILED        | AWS::Lambda::Function       | SatisfactoryHostingStartServerLambda (SatisfactoryHostingStartServerLambda87DC9D06) Resource handler returned message: "The runtime parameter of nodejs14.x is no longer supported for creating or updating AWS Lambda functions. We recommend you use a supported runtime while creating or updating functions. (Service: Lambda, Status Code: 400, Request ID: 93566624-26c0-40c7-9cc3-8a8a2a8c084d)" (RequestToken: 0f737ecb-a910-be21-36dc-e6bebd145752, HandlerErrorCode: InvalidRequest)

Yea, you will need to update the lambda runtime. Nodejs14.x hasn't been supported for lambda functions since December 2023.

Having trouble with this as well, my node version is updated but still getting this error. I even get a warning running npx cdk deploy about using a lower version of node.
$ node -v v20.7.0
I am trying to deploy from AWS Cloudshell, is this not recommended? Otherwise this error seems to originate from some package specified in the code, not the actual node version.

What @drmcnulty mentions above works for me too. Had this error until I 'updated' the packages, I didn't had to specify the runtime though.


Is it possible to get the path from the root of the selected Node?

It is up to you to do. A simple solution is using back reference from each node to it's parent (in your model) and then traversing that back reference path.

is there any other alternative? I'm attempting to save the selectedNode in a json format, but because of this reference, it becomes cyclic and it causes me problems.


Create Posts “test-post”

Automatically generated by Netlify CMS

👷 Deploy Preview for spontaneous-trifle-ab70be processing.

Name
Link

🔨 Latest commit
11cac4b04e43f1d75fee64d25b6558c5a43a12c3

🔍 Latest deploy log
https://app.netlify.com/sites/spontaneous-trifle-ab70be/deploys/642e6d5fcf740f0008dc598e


Goldpinger starts so quickly it often gets pods without IPs

Goldpinger starts quickly, which is good, but it has an interesting side effect: often when it first lists pods, kubernetes doesn't list their IPs. With the current implementation, it often takes 30 seconds to restart the updaters goroutines. During these initial 30 seconds, graph and metrics are unhealthy.
It would be good to enhance it, so that if the pods don't have IPs, we retry to get them quicker than on other kinds of errors.

We also detected this issue in the last couple of days where we updated a bunch of k8s clusters.
I guess it might be sufficient to only get goldpinger-pods which are in running state - currently all pods will be used as ping-target (code)
are you accepting a PR if we implement a fix?

Definitely 👍


patchelf_0_9: drop

From the commit messages in 2020 it's not clear why this package was added back. But since there are no consumers, let's drop it.
cc @vcunat
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/)
22.11 Release Notes (or backporting 22.05 Release notes)

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

[ ] Fits CONTRIBUTING.md.

https://github.com/NixOS/nixpkgs/pull/91157
shouldn't be an issue anymore.

Last reference removed long ago in 0c34580ebca01


How to uninstall/remove apulse?

I installed apulse manually by running make install. Now that I found apulse in my distro's repos, I want to remove apulse and reinstall it from my distro's repo.
How can I undo what make install did? Maybe adding this info to the readme would be great, too.

I don't think there is an automatic uninstall procedure. At least, CMake doesn't generate target uninstall. Instead, it creates file install_manifest.txt in a build directory. It contains the list of files installed to the system. Try to delete files listed there.
I also suggest using of checkinstall or some similar software for installation from sources. Checkinstall creates a package, so it's easier to track installed files. For example, uninstall them easily.

Thanks for the hint!
What I did now solved the issue. Maybe you can note the following command in the README as a workaround to uninstall apulse:
# cat build/install_manifest.txt | xargs rm

I personally don't like any commands with rm, especially those containing iterations over lists. One should definitely know what they delete. Copying such commands from the web is dangerous.

It sure is a better idea to first run only cat to see what will be deleted.
If you want you can check out this post that shows a little workaround to add an uninstall target to CMake: https://www.linux.com/blog/cmake-recipe-5-adding-uninstall-target-your-project

I honestly do not understand why uninstall target is needed. It's quite useless even in autotools, as works as intended only if you have the same configuration, same prefix, and so on. There is absolutely no guarantee that uninstallation procedure will work.

Well you saw one example now ;-)

Are you going to uninstall a lot?

Not necessarily but someone else might need to do what I had to do, too.
It just makes sense to me to have an "uninstall" when there is a "install".


AsyncContext.Run vs TaskUtil.Await

Although this question does not concern only AsyncEx, I thought this would be the most reliable place to ask.
Where AsyncEx provides AsyncContext.Run, the well-known MassTransit package happens to provide TaskUtil.Await. The intent seems to be largely the same.
Both methods seem to succeed in avoiding most deadlocks. If I'm not mistaken, both also help avoid thread pool starvation (by letting only one thread pick up the continuations?).
Still, the implementations are quite different. (For one thing, TaskUtil.Await uses Thread.Sleep in a loop.) I'm trying to understand the consequences of the differences, but I'm not familiar enough with the concepts.
I'm curious what practical consequences I should expected when using either of the methods.

From reading the code, it looks like TaskUtil.Await begins executing its work on the current thread, but with a SynchronizationContext that passes any continuations off to a thread pool thread. The original thread is then blocked (Thread.Sleep in a loop) until the work completes running on thread pool thread(s).
AsyncContext.Run also takes over the current thread until the work is complete, but it works by scheduling all continuations onto that same thread, not on thread pool threads.
AFAICT that's the main difference.

Your reponse is much appreciated, @StephenCleary!
Do you expect any performance difference between Thread.Sleep(3) in a loop vs. GetAwaiter().GetResult()?
P.S. MassTransit's implementation seems to use a single thread as well, judging by its SingleThreadSynchronizationContext.

If you need to block, then blocking is generally more performant than busy waiting. I suspect (but am not sure) that they may be doing busy waiting in case the original thread is a UI thread, in which case it would have to do STA pumping. Which IIRC may be done by the Thread.Sleep call.
SingleThreadSynchronizationContext uses a ChannelExecutor bounded to a single item at a time. ChannelExecutor runs its consumer task on a thread pool thread - and the consumer is asynchronous, so it may switch threads at any await. Finally, the actual continuations themselves are also wrapped in a thread pool thread.
So, I haven't actually run the code, but I'm quite sure that SingleThreadExecutionContext only ensures that one continuation at a time may be run, but allows them to run on any available thread pool thread.


FBI Cert signature or hash check failed

hi i follow your guide till finish, my 3ds already running with a9lh and luma3ds CFW. but when i want to install .cia file with fbi i often get this error.
Failed to install CIA file.
Result code: 0xD8E0806A
Level: Permanent (27)
Summary: Invalid argument (7)
Module : AM (32)
Desc: Cert signature or hash check failed (106)
am i missing a step? i thought installing luma cfw will let you install unsign cia? or its because something else, hope someone can help.

What are you trying to install?

i'm trying to install 3ds software (games) , before a9lh i use emunand with reinand and all my 3ds games .cia can install just fine with fbi

Not a piracy support forum, take this question elsewhere.


Add support for catalog in FQNs of views

Problem Statement
As https://github.com/crate/crate/pull/12816 but for views.
This is used by dbt
Possible Solutions
Example:
CREATE VIEW doc.v1 AS (SELECT 1 AS a);
SELECT * FROM crate.doc.v1;

Considered Alternatives
Override dbt macros replacing away "crate".

This works already:
cr> create table crate.doc.t1(a int);
cr> create table t1(a int);
CREATE OK, 1 row affected  (0.308 sec)
cr> insert into t1 values(1), (2);
INSERT OK, 2 rows affected  (0.015 sec)
cr> create view vt1 AS SELECT * FROM t1 where a > 1;
CREATE OK, 1 row affected  (0.059 sec)
cr> select * from vt1;
+---+
| a |
+---+
| 2 |
+---+
SELECT 1 row in set (0.015 sec)
cr> select * from doc.vt1;
+---+
| a |
+---+
| 2 |
+---+
SELECT 1 row in set (0.003 sec)
cr> select * from crate.doc.vt1;
+---+
| a |
+---+
| 2 |
+---+
SELECT 1 row in set (0.003 sec)
cr> select crate.doc.vt1.a from vt1;
+---+
| a |
+---+
| 2 |
+---+
SELECT 1 row in set (0.003 sec)
cr> select crate.doc.vt1.a from doc.vt1;
+---+
| a |
+---+
| 2 |
+---+
SELECT 1 row in set (0.003 sec)
cr> select crate.doc.vt1.a from crate.doc.vt1;
+---+
| a |
+---+
| 2 |
+---+
SELECT 1 row in set (0.003 sec)

Can you please double check and if everything is working, close the issue?

I am getting SQLParseException in 5.3.0 --> will try again with latest snapshot

Yes, this works on the latest nightly.
Thank you.


[NTR] plasma cell of appendix

Note - please check that the term does not already exist (check OLS: https://www.ebi.ac.uk/ols/ontologies/cl)
Preferred term label:
plasma cell of appendix
Synonyms
plasma cell of vermiform appendix
plasma cell of appendix vermiformis
Definition (free text, please give PubMed ID in format PMID:XXXXXX)
Plasma cell that is located in the appendix vermiformis. Plasma cell is a terminally differentiated, post-mitotic, antibody secreting cell of the B cell lineage. Plasma cells are oval or round with extensive rough endoplasmic reticulum, a well-developed Golgi apparatus, and a round nucleus having a characteristic cartwheel heterochromatin pattern and are devoted to producing large amounts of immunoglobulin. PMID: 25698678
Parent cell type term (check the hierarchy here https://www.ebi.ac.uk/ols/ontologies/cl):
plasma cell http://purl.obolibrary.org/obo/CL_0000786
What is the anatomical structure that the cell is a part of? Please check Uberon: https://www.ebi.ac.uk/ols/ontologies/uberon
vermiform appendix http://purl.obolibrary.org/obo/UBERON_0001154
Your nano-attribution (ORCID)
0000-0003-3440-1876
Any additional notes or concerns

@sfexova
CL_0009033 (plasma cell of appendix)


Discover external commands through Bundler

Other gems may want to add commands to the nanoc CLI. To do this
they need to run Nanoc::CLI.add_after_setup_proc. Currently, there
is no way to hook into the CLI. This commit adds such a way by
utilizing Bundler. E.g. the gem guard-nanoc could introduce new
commands when added to the Gemfile in this way:
gem 'nanoc'
group :nanoc do
  gem 'guard-nanoc'
end

Presence of any gems in the group :nanoc will cause the library with
the same name as the gem to be required by Bundler during
the initialization of the CLI.
A special group :nanoc is used for two reasons:

nanoc may not be the only or primary user of the Gemfile,
and requiring many unrelated gems will slow down every invocation
of nanoc with no workaround;
existing Gemfiles may include specifications for gems that cannot
be successfully required, so using the group :default would
break such existing nanoc installations.

Looks good!
The group name nanoc doesn’t convey the idea that these are gems that will be automatically required. Perhaps a group namesautorequire?
Additionally, since Bundler is not a runtime requirement of Nanoc, Bundler.require(:nanoc) can potentially fail.

The group name nanoc doesn’t convey the idea that these are gems that will be automatically required. Perhaps a group named autorequire?

I'm not sure if such change would make a lot of sense. First, there is no guarantee that the entire Gemfile would not be autorequired; indeed, whether or not to require gems is a choice of an application using the Gemfile. Second, autorequiring groups of gems is, as far as I'm aware, literally the purpose of the Bundler group feature (e.g. see its docs), so that should not come as a surprise.

Additionally, since Bundler is not a runtime requirement of Nanoc, Bundler.require(:nanoc) can potentially fail.

I've wrapped that in if defined?(Bundler).

The group name nanoc doesn’t convey the idea that these are gems that will be automatically required. Perhaps a group named autorequire?

I'm not sure if such change would make a lot of sense. First, there is no guarantee that the entire Gemfile would not be autorequired; indeed, whether or not to require gems is a choice of an application using the Gemfile. Second, autorequiring groups of gems is, as far as I'm aware, literally the purpose of the Bundler group feature (e.g. see its docs), so that should not come as a surprise.

Thinking about it again, the group name nanoc makes sense (as in, these are the gems that nanoc will load by default).

Thanks!


makeJSON() uniform behavior between SequenceType and its Element

Currently, calling makeJSON() on SequenceType returns the makeNode() implementation for each Element. This changes that to use the makeJSON defined in the Model.
Also updated the protocol constraint to JSONRepresentable since the function is related to JSON and not Node.

@chriscombs thanks, once CI passes, we'll get this in.

@LoganWright JSON performance test is complaining:
/home/travis/build/vapor/json/Tests/JSONTests/JSONTests.swift:137: error: JSONTests.testParsePerformance : failed: The relative standard deviation of the measurements is 27.043% which is higher than the max allowed of 10.000%.
Test Case 'JSONTests.testParsePerformance' failed (109.795 seconds).

@BrettRToomey @chriscombs
does this line need to change? https://github.com/vapor/json/pull/24/files#diff-ef44dadda9d89a3d807e384b14f4ec6bR5
Might be slower somehow.

@chriscombs @BrettRToomey actually, after looking again, I think this should be additive instead of a replacement. An array of NodeRepresentable might still have value to be able to convert to JSON, even though, I agree, this should exist also.

Codecov Report

Merging #24 into master will not impact coverage.

@@           Coverage Diff           @@
##           master      #24   +/-   ##
=======================================
  Coverage   90.09%   90.09%
=======================================
  Files          11       11
  Lines         202      202
=======================================
  Hits          182      182
  Misses         20       20

Impacted Files
Coverage Δ

Sources/JSON/Sequence+Convertible.swift
100% <100%> (ø)
:white_check_mark:

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 5320032...e298cc2. Read the comment docs.

@LoganWright It can be additive if you change the name of one of the functions, otherwise you get an ambiguity error.

@chriscombs just saw that, I was wrong. Trying to get through the performance stuff now, I didn't realize it was even setup on Linux.


Resolves issue 8

Resolves https://github.com/emotionbug/jdbc-sshj/issues/8

I finished distributing it. You'll be able to check it out in half a day.

thanks, I finished distributing it. You'll be able to check it out in half a day.

Thanks for such a quick turn around!


Improve docs for crev review --diff

I wanted to review a diff and it took me a hot minute to figure out the correct incantation. These changes would've helped me get it done faster. Hopefully they'll help the next person then :)
I couldn't name the option argument "version" because that is already taken by something else — I couldn't figure out by what exactly, but if I use "version", Clap panics at run-time.
Checklist:

[ ] cargo +nightly fmt --all -- this ends up modifying a lot of files which are not related to my changes. Did someone else forgot to do this? Should I do this in a separate commit?
[x] Modify CHANGELOG.md if applicable — I don't think minor doc updates like this are eligible for the changelog entry

LGTM

Pardon me for nagging, but what prevents this PR from being merged? I notice there was a release yesterday, and it's a pity these changes aren't a part of it.

Thank you! :tada:


deploy-to-updraft 0.0.1

What to do if the build fails?
At the moment contributors do not have access to the CI workflow triggered by StepLib PRs. In case of a failed build, we ask for your patience. Maintainers of Bitrise Steplib will sort it out for you or inform you if any further action is needed.
New Pull Request Checklist
Please mark the points which you did / accept.

[x] I will not move an already shared step version's tag to another commit
[x] I read the Step Development Guideline
[x] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[x] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[x] I read and accept the Abandoned Step policy

New Step
Thank you for the new Step share! The CI check might will fail due to our extended validation engine. Nothing to worry about yet, we will get back to you shortly.

weird but I think I know what I did wrong (I just did a local changes in repo and than ran CLI comand to share the step, without commit and push)
Sorry about that, my bad


Update DomainNameUtil.java

The constant DOMAIN = DOMAIN_LABEL +"\."+ DOMAIN_LABEL;  validates that the e-mail address must be composed for an username and a domain name with a dot sign between two or more words

Hi @Hilmerc
Can you explain what you're trying to fix? I don't follow you.
--
Guillaume

we have these kind of tests for the @Email validator:
isValidEmail( "emmanuel@hibernate" );
isValidEmail( "emma-n_uel@hibernate" );

Which I assume will fail after such change. Also it looks that it'll allow only a two parts domains as * is removed from expression.

Marko you got it, before the change e-mail address like emmanuel@hibernate pass the validation. With my propose the domain must be composed for at least two parts separated by a dot: @hibernate.com @hibernate.net.fr hibernate.fr

@Hilmerc thanks for clarification. I think, if I remember it correctly, some time ago we changed implementation of the rules for email validation when we added more case from Wiki examples. And there's this example in there:

admin@mailserver1 (local domain name with no TLD, although ICANN highly discourages dotless email addresses)

Also we would not match localhost in this case as well:

user@localserver

So maybe it's better to leave it as it was before? @gsmet @Hilmerc WDYT?

before the change e-mail address like emmanuel@hibernate pass the validation

We conciously decided to consider this valid, name@localhost being the canonical example. If you'd like to exclude this kind of address, you can do so using the Email#regexp() option. I'm thus going to close this PR, thanks for your efforts nevertheless, @Hilmerc.


Add docker-compose for controlled local development

Q
A

Type
feature

BC Break
no

Hi,
This PR adds Docker support to help with local development.
Run make test-container to create the container and its MongoDB dependency. A terminal is opened once the container is ready, run make test to run the test suite. When you're done with the tests just enter exit and the container will be destroyed and it's dependency shutdown.
The container image is built from the official PHP 7.2 image, and includes the MongoDB driver, the bcmath extension, and Composer (to install packages from within the container).
I also added ext-bcmath to composer.json since the extension is required by the AlnumGenerator class, but I didn't indicate a version because I didn't know which one to pick.
I hope this helps.

After internal discussion, we've decided not to merge this. None of us use docker for our development environments, so maintaining the infrastructure would be an additional chore with no extra gain.
As for the bcmath extension, while technically required for AlnumGenerator, we've intentionally left it out since it's only required if you actively specify the generator in the mapping. Instead of a hard requirement, this should be checked by the class itself, with the extension put into a suggest section in composer.json to explain where it's used. Please create a separate pull request for that if you're interested in making the change.


SSH Daemon (NIO2) is not starting anymore

Hello
I have two VM running gitblit under jetty version 9.2.11.  Both are using java 8 (lastest update "1.8.0_77") in a ubuntu server 14.04.
The only difference that I've noticed is the kernel version
One of them is
2.6.32-042stab111.12 #1 SMP Thu Sep 17 11:38:20 MSK 2015 x86_64 x86_64 x86_64 GNU/Linux (lets call server 1)
and the other one is
_2.6.32-042stab113.21 #1 SMP Wed Mar 23 11:05:25 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux _(lets call server 2)
On server 1, everything works fine.
But on Server 2, the context of gitblit is not up and runinng.
The last record in log is:
2016-04-12 22:22:53 [INFO ] Federation passphrase is blank! This server can not be PULLED from.
2016-04-12 22:22:53 [INFO ] Fanout PubSub service is disabled.
2016-04-12 22:22:53 [INFO ] Git Daemon is listening on <IP_ADDRESS>:9419

After that, jetty's service is failing, and context isn't available. The application stays with status STARTING forever.
I've tried to reinstall ssh server and client with no success.
Can someone help me with that?
Regards

A few days after I post my question I've found the correct answer.
I followed the steps bellow to detect the root cause of problem:

I've downloaded the source code of gitblit's version I'm using. In this case, version 1.7.1 available here.
With source code I added some quick logs (using sysout) only to check when the application freezing. I noticed that problem was in code of Apache MINA sshd.
I've also  downloaded the source code of Apache MINA sshd to debug. In this case I wasn't able to add sysout, then I chose to do a remote debugging in my jetty running on server as described here.

Of course that it was a little bit slowly, but I noticed that when the sshd's code called SecureRandom.generateSeed(8) in class SecurityUtils.BouncyCastleRandom
public BouncyCastleRandom() {
    ValidateUtils.checkTrue(isBouncyCastleRegistered(), "BouncyCastle not registered");
    this.random = new VMPCRandomGenerator();
    byte[] seed = new SecureRandom().generateSeed(8);
    this.random.addSeedMaterial(seed);
}

The system used to freeze completely.
After a long time searching on the internet I've found this link/blog https://blog.cloudflare.com/ensuring-randomness-with-linuxs-random-number-generator/ and when I typed the command cat /proc/sys/kernel/random/entropy_avail I was always getting 0 (zero) as result.
I was aware that my Linux is a VPS running under openvz hosted in host1plus. Based on that, I asked to VPS provider check the reason that in my VPS I was always getting zero as result.
The answer from Technical support was:

We have enabled the random device for your VPS. Please check if it works works for you and if the issue is solved.

After that update my gitblit was backing to up and running state.

Wow.  Very interesting details.  Thank you for sharing!


⚠ Secret Website 3 has degraded performance

In 86893ed, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 3159 ms

Resolved: Secret Website 3 performance has improved in c9b7142.


KeyError: '/m/0glpjll'

I'am trying to create an anchorbank for the timeframe "2014-01-01 2014-09-27" and geo global. the script stops while removing bad queries with KeyError: '/m/0glpjll'.
File "/home/ec2-user/.local/lib/python3.7/site-packages/gtab/core.py", line 872, in create_anchorbank
google_results = self._get_google_results()
File "/home/ec2-user/.local/lib/python3.7/site-packages/gtab/core.py", line 387, in _get_google_results
bad_idxs = self._diagnose_bads(t_ret, keywords)
File "/home/ec2-user/.local/lib/python3.7/site-packages/gtab/core.py", line 213, in _diagnose_bads
bad_dict = self._find_bads(gres, keywords)
File "/home/ec2-user/.local/lib/python3.7/site-packages/gtab/core.py", line 204, in _find_bads
ret[b][1] += 1
KeyError: '/m/0glpjll'

I guess instagram (/m/0glpjll) was not that popular back then!
The solution to your problem is editing your config file config_py.json and removing /m/0glpjll from the list of HITRAFFIC words!
Best,
Manoel


write_abstract_lef fixes

A few abstract LEF fixes, discovered when trying to replace the existing scripts in ORFS.

@antonblanchard are you still working on this PR?

@maliberty I am, just got a bit side tracked with other bugs. Will get back to this one.

Still relevant?

@antonblanchard this PR is some old and needs conflict resolution.  If you'll update I can re-review

Stale.  Reopen if you are still planning to work on it.


Migrating from bors to GitHub without merge queue

Purpose
Migrating from bors to GitHub without merge queue

[ ] I have read and checked the items on the review checklist.

I think you don't need documenter/deploy in the required checks.


Some questions about Experimental settings

Hi, I am studying your paper 《Pedestrian Detection: Domain Generalization, CNNs, Transformers and Beyond》. What does the height in Table 1 on the third page of the paper mean? Why is it set up like this? Thank you so much! ! !

Hi,
Height in Table 1, refers to height of pedestrian in pixels. So in simple terms, during evaluation, for example under Reasonable setting,  you only take into account pedestrian whose height is greater than 50 pixel using ground truth. Now, the second question, why is like that, I suggest you to read this paper, particularly section 2, 3 and figure 4. In summary, it is shown that due to application oriented nature of the problem, these settings were found to be most meaningful (for autonomous vehicles etc).


CheckSum Errors

There appears to be a condition on Product uploads where the LCB parser breaks and fails to count rows correctly.
The error message is "CheckSum and number of records don't match"
CheckSum refers to the the "NumberRecords" field provided in the uploaded CSV file.
Observed on Inventory and on Product files

Related to Bug #38 is also this error is appended with a COMMA -- when all others seem to use a colon?
412717, Main Section, , 412717-018NY6XC00SECT10N000000000, -system-, 12/29/2021, -system-, 12/29/2021, INSERT, Integrator is not authorized to update licensee,  CheckSum and number of records don't match

Saw this on a Sections (Area) file too.  Uploaded a file with mixed INSERT, UPDATE and DELETE -- and the Canary row.

IR51958 -- hexdump on the files shows mixed line-endings -- there is only CSRF

So, I've just reviewed my files again on this.
Many of them had this mixed line-ending issue -- on the header rows.
But only some of them returned the CheckSum error -- which is odd.
Shouldn't all of the files that had the mixed line endings have errored out?


Best way to connect to trix events?

is there a best practice for listening to trix events?
or should I implement something like react-event-listener?

Editor.element contains the element and you can attach an event listener to that as below:
this.state.editor.element.addEventListener('trix-change', () => console.log('example'))

Thanks @AndrewGHC!
Where are the some of the other main methods located?
e.g.
element.editor.insertString("Hello")
this is coming up as not a function:
this.state.editor.insertString("")
I'm basically looking to reset the editor value. If it matters, I'm using a string of HTML in the body instead just a string.

All methods should be available to the editor call back. All this component does is return the editor object when Trix initialises. It might be worth simply logging the editor and following the prototype chain to double check that's a valid method, as many of them are undocumented.


Bump snarky

This deletes the group_map library now that it has been moved into the snarky repo.
Checklist:

[ ] Tests were added for the new behavior
[ ] All tests pass (CI will check this if you didn't)
[ ] Serialized types are in stable-versioned modules
[ ] Does this close issues? List them:

remove src/lib/group_map in CODEOWNERS

Thanks, done!


feat: add pre-commit hook and format all files

In general, I prefer and wrote new lines before open brace:
https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/csharp-formatting-options#csharp_new_line_before_open_brace
Can we keep that rule, so that the PR will be easier to review and be consistent with the way how the code was written?

In general, I prefer and wrote new lines before open brace: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/csharp-formatting-options#csharp_new_line_before_open_brace
Can we keep that rule, so that the PR will be easier to review and be consistent with the way how the code was written?

@sandrohanea
Does it seem fine now?

In general, I prefer and wrote new lines before open brace: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/csharp-formatting-options#csharp_new_line_before_open_brace
Can we keep that rule, so that the PR will be easier to review and be consistent with the way how the code was written?

@sandrohanea Does it seem fine now?

Thanks for the quick fix and answer. It's still strange that a lot of changes for spacing are generated and if pressing format (Ctrl + K + D ) in Visual Studio will format it the default way for C# (4 spaces instead of tab, etc).
Is it possible to configure this format to use the same format as default VS and not generate changes when Ctrl + K + D will be pressed in VS?

It's not only about the 4 spaces, but these changes are generated as well from VS vs the clang-format:

CC: @NripeshN

Thanks for the quick fix and answer. It's still strange that a lot of changes for spacing are generated and if pressing format (Ctrl + K + D ) in Visual Studio will format it the default way for C# (4 spaces instead of tab, etc).
Is it possible to configure this format to use the same format as default VS and not generate changes when Ctrl + K + D will be pressed in VS?

We can create a .clang-format file as per our liking and making VS use that. By default, Visual Studio will use any existing ClangFormat file in your source tree for formatting operations. I am not exactly sure the exact format you'd like but maybe we can start of with an empty file which would use the default pre-commit formatting.

I would like the default C# formatting as this is mostly a C# repository.
Visual Studio is using .editorconfig file for this which we already have. I don't like the idea of having a duplication of formatting rules in both formats unless we'll have a clear benefit. Probably clang-format is not the best tool for this job, and we should use just dotnet format instead that is already configured on the solution and is focused on C#.


add release notes for  istioctl x internal-debug

add release notes for istioctl x internal-debug

/cherrypick release-1.10

@irisdingbj: once the present PR merges, I will cherry-pick it on top of release-1.10 in a new PR and assign it to you.

In response to this:

/cherrypick release-1.10

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@irisdingbj: new pull request created: #31979

In response to this:

/cherrypick release-1.10

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


Ability to increase amount of physics collision layers

Issue description:
It would be great to have the ability to increase amount of collision layers.
From talk on irc with @AndreaCatania it should be customizable inside Project settings and the default value should be 20 (the same amount as currently).

isnt there a limit for this amount though?

The internal limit is 32, and you can already use up to 32 layers from script AFAIK, but only 20 from the editor. Showing all 32 of them in the editor would make it cumbersome, but might still be needed for some projects, hence the proposal to make it configurable.

Maybe the default value could be decreased to 16 if there's now an easy way to change it, as I suppose most games will still only use between 2 and 8 layers.

The best thing is to increase or decrease by step of 10, In this way we don't have to change interface in order to fit this needs.

Ah you mean to just add rows instead of adding columns. Why not. But then I'd use a step of 8 to be able to select 8 (one row), 16 (two rows), 24 (three rows) and 32 (max, four rows).

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.
If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!


Remove image/eps as supported image format

The image parse strategy is based on the Image class in the Pillow package, which supports the EPS (Encapsulated PostScript) format. However, reading an EPS image requires that Ghostscript is installed on the system.
Instead of requiring Ghostscript to be installed, we should remove image/eps from the list of supported image formats.

I think the better solution here is to keep the strategy in, but only properly test it in CI. If one does not have Ghostscript installed locally, the test will simply be skipped.

That's a good point. We can have the strategy simply raise if it doesn't find Ghostscript available on the system? And then actually test that as well. I think that's fair.
It should then also be documented as a requirement/dependency in the system when implementing an OTE API service.


Adding OpenAI GPT

[ ] My submission is formatted according to the guidelines in the contributing guide
[ ] My addition is ordered alphabetically
[ ] My submission has a useful description
[ ] The description does not have more than 100 characters
[ ] The description does not end with punctuation
[ ] Each table column is padded with one space on either side
[ ] I have searched the repository for any relevant issues or pull requests
[ ] Any category I am creating has the minimum requirement of 3 items
[ ] All changes have been squashed into a single commit

is it really any free calls?

is it already working?

[ ] My submission is formatted according to the guidelines in the contributing guide
[ ] My addition is ordered alphabetically
[ ] My submission has a useful description
[ ] The description does not have more than 100 characters
[ ] The description does not end with punctuation
[ ] Each table column is padded with one space on either side
[ ] I have searched the repository for any relevant issues or pull requests
[ ] Any category I am creating has the minimum requirement of 3 items
[ ] All changes have been squashed into a single commit


Fix device models examples

Some examples were using resin.models.devices instead of resin.models.device.

LGTM


Fixes missing jq on gke nodes issue #183

Reason for Change:

GKE nodes (maybe others as well?) might not have jq installed and therefore will fail mounting the volume. See more at https://github.com/Azure/kubernetes-keyvault-flexvol/issues/183
Issue Fixed:

Fixes #183
Notes for Reviewers:
I have tested this solution on a GKE node. However, I haven't tested it on a node that does include jq.
I am not sure if using python is the best way, but I assume that python exists on all *nix machines and would be the easiest solution for the time being.

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

@aramase unfortunately, GKE nodes are based on Chromium OS, which will require the user to build a custom jq binary in order to install it and the automatically provision it. On the other hand, python is installed by default on almost all common *nix versions AFAIK.
As for the example that you have attached, if there is a possibility to install jq or python, we can let the user know in the error message about it (something like "jq or python is required for keyvault-flexvol to work")

@Shaked sounds good! I'll review and try out the PR soon.


Don't duplicate -rpath for TBB

Summary
Reported on the forums, some versions of ld are now issuing warnings for repeated copies of -rpath.
I think the fact that we were passing it twice already was an error/misinterpretation of LDFLAGS and LDLIBS.
Tests
Side Effects
Release notes
Fixed the RPATH to the TBB library being passed twice on the command line
Checklist

[ ] Math issue #(issue number)

[x] Copyright holder: (fill in copyright holder information)
The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

[x] the basic tests are passing

unit tests pass (to run, use: ./runTests.py test/unit)
header checks pass, (make test-headers)
dependencies checks pass, (make test-math-dependencies)
docs build, (make doxygen)
code passes the built in C++ standards checks (make cpplint)

[x] the code is written in idiomatic C++ and changes are documented in the doxygen

[x] the new changes are tested

@andrjohns is the failure here related to #2947 ?

@andrjohns is the failure here related to #2947 ?

Looks like it was just a temporary download error, restart the actions run and all seems to be fine


MergeableSelector does not work with sibling selectors.

page-partials/settings/_toggle-button.scss:34 [W] MergeableSelector: Merge rule `.hp-toggle-button input` with rule on line 17
[14:10:46] page-partials/settings/_toggle-button.scss:41 [W] MergeableSelector: Merge rule `.hp-toggle-button input + label` with rule on line 17
[14:10:46] page-partials/settings/_toggle-button.scss:49 [W] MergeableSelector: Merge rule `.hp-toggle-button input + label:after` with rule on line 17
[14:10:46] page-partials/settings/_toggle-button.scss:62 [W] MergeableSelector: Merge rule `.hp-toggle-button input:focus + label` with rule on line 17
[14:10:46] page-partials/settings/_toggle-button.scss:67 [W] MergeableSelector: Merge rule `.hp-toggle-button input + label:hover` with rule on line 17
[14:10:46] page-partials/settings/_toggle-button.scss:72 [W] MergeableSelector: Merge rule `.hp-toggle-button input:checked + label:after` with rule on l

Hey @mintuz,
It would be really helpful if you included a small sample of SCSS code that reproduces this issue and explain why it doesn't do what you expect. As it stands, it seems like the warnings you're seeing are legitimate (though it's hard for me to tell without your code). For example:
.class {
  ...
}

.class + input { ... }

The above can become:
.class {
  ...
  + input { ... }
}

...and thus scss-lint is doing the right thing by telling you that you can merge the selectors.
I'm going to close this as it's likely just a misunderstanding of scss-lint's output. Feel free to reopen if not.


Add Wishlist   at header part in bliss theme

#5706
Added there should be an option of wishlist button in blisss theme in front panel

working fine


ChunkLoadError: Loading chunk 8029 failed.[Bug]

Bug Description
when i try to vist my_domain.com in Edge it happend.But its ok when visit it  in Chrome
Oops, something went wrong!
ChunkLoadError: Loading chunk 8029 failed.
(error:https://my_domain/_next/static/chunks/8029.68d2d8bab878b98a.js)
at Lazy
at Suspense
at LoadableComponent
at div
at diy
Steps to Reproduce
1 visit my_domain.com in Edge
Expected Behavior
show the error in browser
Screenshots
No response
Deployment Method

[ ] Docker
[X] Vercel
[ ] Server

Desktop OS
No response
Desktop Browser
No response
Desktop Browser Version
No response
Smartphone Device
No response
Smartphone OS
No response
Smartphone Browser
No response
Smartphone Browser Version
No response
Additional Logs
No response

do you have any screenshot about this error in Edge?

i need some screenshot about both network and console tab

Same!!!


Sessionize Social Icon

This pull request adds support for the "Sessionize" social media platform in the application. It includes changes to the socialIcons.ts file to add a new social icon for "Sessionize", updates the SocialMedia type in types.ts to recognize "Sessionize" as a valid platform, and adds support for "Sessionize" as a social media platform in the application's configuration.
Main changes:

src/assets/socialIcons.ts: Added a new social icon for "Sessionize" in the socialIcons.ts file.
src/types.ts: Updated the SocialMedia type to recognize "Sessionize" as a valid social media platform.
src/config.ts: Added support for "Sessionize" as a social media platform in the application's configuration.

@satnaing thank you very much for that awesome theme! I'd like to contribute a social icon that I was missing from the list.
Is there any PR/review workflow you intend to use. It appears that I could simply merge the changes into the main branch. Furthermore, I enable Advanced Security (GHAS) on my repo and it immediately opened 4 PR's for security updates. I highly recommend using GHAS as it comes for free for public repos. I am happy to assist you in setting it up.

Hello @aatmmr
Thank you for your suggestion and PR. I truly appreciate your effort.
After some thought, I've decided to keep the project supporting only a specific set of popular social icons. If users wish to include a new social media platform, they can integrate it on their own. The current set of social icons should be sufficient for most users.
I hope this decision doesn't disappoint you. If you have any other ideas or changes you'd like to propose in the future, please feel free to share them.
Thanks again for your understanding.
Look forward to your continued involvement in the project.

urthermore, I enable Advanced Security (GHAS) on my repo and it immediately opened 4 PR's for security updates. I highly recommend using GHAS as it comes for free for public repos. I am happy to assist you in setting it up.

Is there any PR/review workflow you intend to use.

Yes, I'm thinking of integrating a CONTRIBUTION guide line and issue template in the future.

It appears that I could simply merge the changes into the main branch.

Does it? I didn't notice anything strange. Is there any procedure I should follow?

I highly recommend using GHAS as it comes for free for public repos. I am happy to assist you in setting it up.

I believe I've already enabled GHAS in AstroPaper.

No worries @satnaing - if someone is looking for the icon the PR is still around and searchable, hence a tutorial to add a new icon. A post in the template could be useful to show how this is done 🤔

Yep
Good idea. Maybe a blog post under #faq tag.
You can make a PR for that if you wish.

I believe I've already enabled GHAS in AstroPaper.

Yes, you did - there are PRs for dependency updates - I unfortunately missed that when writing as I just had the instant dependabot updates in my repo in mind 😅


Add opcache page

https://github.com/yiisoft/yii-debug-api/pull/147

How about visualizing it? Like it was suggested in the original issue?
A few more references:

https://github.com/rlerdorf/opcache-status
https://github.com/Hill-98/opcache-panel
https://gist.github.com/ck-on/4959032

Possible, but I'd add it later. No enough time to add graphics


Error with the latest version of esbuild

I'd like to update esbuild to the last version (v0.14.48) but I have this error due typing incompatibilities between v0.14.39 (the version imported by deno loader) and v0.14.48.
error: TS2322 [ERROR]: Type 'import("https://deno.land/x/esbuild@v0.14.39/mod.d.ts").Plugin' is not assignable to type 'import("https://deno.land/x/esbuild@v0.14.48/mod.d.ts").Plugin'.
  Types of property 'setup' are incompatible.
    Type '(build: import("https://deno.land/x/esbuild@v0.14.39/mod.d.ts").PluginBuild) => void | Promise<void>' is not assignable to type '(build: import("https://deno.land/x/esbuild@v0.14.48/mod.d.ts").PluginBuild) => void | Promise<void>'.
      Types of parameters 'build' and 'build' are incompatible.
...

I propose to release the 0.5.1 version with updated dependencies.

Fixed in #19


set highlighted days for CalendarView

Is there any way I can set highlighted days for CalendarView?
Is there a way to deselect a particular date on CalendarView and clear all the selected dates? (documenting this will be helpful)
I'm  also requesting a feature to change the background color for highlighted Items for calendarView.

Please read the documentation: There is a method literally called setHighlightedDays()
https://github.com/wdullaer/MaterialDateTimePicker#additional-options
You can't select multiple days, so clearing and unselecting do not make any sense.
And I do not intend to offer more customization options for the highlighted days. If you have advanced features it should be easy enough to customize the SimpleMonthView class yourself with the behaviour you want.


fix(v1): rejoin a deleted room causes incorrect rtc uid

I’m not sure if this is a valid modification because I cannot reproduce the issue, so I can only make a fix based on speculation.
But as far as the code is concerned, LGTM.


chore: update karma to zone 0.6.15

Yet another update. I also updated the tests in ngUpgrade because I forgot the last time.

I don't quite understand this one.  There are changes to 1.js versions but not the ones without .1.
Also the list of zone modules is incomplete. I'm adding what I believe to be the correct set in the next commit.

This change was for .15 which only needed a file rename, but in the same day .16 came out requiring all the files, I just hadn't time to come back and change it.
I also added the generic karma-shim. I know you want to remove it, but I am not sure if that is an option anymore, it is needed for the upgrade guide.


<EMAIL_ADDRESS>Generated typings don't have BigNumber as a type

With<EMAIL_ADDRESS>as target, generated types no longer support BigNumber for the contracts. As an example, this is the typing generated with<EMAIL_ADDRESS>-- https://github.com/MARKETProtocol/types/blob/develop/types/MarketCollateralPool.ts#L178 and the below is generated using<EMAIL_ADDRESS>target which has string instead of BigNumber -- https://github.com/MARKETProtocol/types/blob/feature/upgrade-web3-1.0.0/types/MarketCollateralPool.d.ts#L44
BigNumber might need some additional parsing while generating the types I guess. Would be really great if this can be supported soon. Thanks :)

@eswarasai this is expected behavior. Targets like<EMAIL_ADDRESS>or truffle will generate typings for API provided by given libraries. This means that decision to use a string in public API was made by web3 team, not ethereum-ts/TypeChain.
You can always write automatic transformer on userland using a combination of conditional types and dynamically wrapping responses from web3. I know it's not the cleanest solution but this way we can stay out of discussions what API should TypeChain provide in generated wrappers.
I think it raises a broader question: should TypeChain allow to customize targets. For example, one can always write own target and just copy web3 target with some changes. I think we should at least document and support easily this use case.

Note that web3.utils etc. use BN from BN.js internally. Some functions don't even support BigNumber but only BN, like web3.utils.toWei, so I suggest to change the exported type to BN to make it compatible to web3.js.

@sebastianst How do you do that? The .ts files generated by TypeChain import BigNumber and there's no way to override that. Did you find a solution to this problem?

I ended up with some hacks in the scripts section of the package.json file:
"scripts": {
    "postinstall": "patch node_modules/truffle-typings/index.d.ts < patches/truffle-typings.d.patch || true",
    "build:contracts": "truffle compile",
    "build:types": "typechain --target truffle './build/**/*.json'",
    "postbuild:types": "sed -i -e 's/BigNumber/BN/g' -e '/bignumber\\.js/d' types/truffle-contracts/index.d.ts",
    "build:js": "tsc -p .",
    "build": "yarn build:contracts &&  yarn build:types && yarn build:js",
    "test": "truffle test"
}

The patch looks like
--- /home/self/truffle-typings/index.d.ts	2019-02-04 13:23:01.173368580 +0100
+++ truffle.d.ts	2019-02-04 13:24:30.993372687 +0100
@@ -3,15 +3,19 @@
  */
 /// <reference types="chai" />
 /// <reference types="mocha" />
+
+declare type BN = import("web3-utils").BN;
+declare type Web3 = import("web3").default;
+
 declare const assert: Chai.AssertStatic;
 declare const expect: Chai.ExpectStatic;

+declare const web3: Web3;
+
 declare function contract(name: string, test: (accounts: Truffle.Accounts) => void): void;

 declare const artifacts: Truffle.Artifacts;

-declare const web3: any;
-
 /**
  * Namespace
  */
@@ -19,10 +23,10 @@
   type Accounts = string[];

   interface TransactionDetails {
-    from: string;
-    gas?: number | string;
-    gasPrice?: number | string;
-    value?: number | string;
+    from?: string;
+    gas?: BN | number | string;
+    gasPrice?: BN | number | string;
+    value?: BN | string;
   }

   export interface TransactionLog {

But I didn't test this for the last three months, so this probably has to be adjusted.
Does that answer your question?

@sebastianst Thanks a lot. This is pretty much the same we came up to as well.
I think the TypeChain should allow for "configurable" BigNumber library. It is such a great tool, I think it would benefit from some little flexibility.

@hickscorp @sebastianst I agree that we need "custom" target or something like this. Let me know if you want to work on this

@krzkaczor I'd be very happy to help but I've literally never worked on a tooling npm package - I'm a bit scared that I'll go against good practices. If you would however like me to help with specs for whoever would like to take on the development part, happy to do a clean ticket recap'ing what should be done.

@hickscorp don't worry about it, you did a fine job on truffle-typings repo ;)
Some background on this feature. TypeChain under the hood uses https://github.com/krzkaczor/ts-generator which abstracts away some parts regarding type generation. What we could do is allow typechain users to provide custom "plugin" for ts-generator. All existing targets are just plugins for ts-generator.
CLI usage could look something like:
typechain --target=./typechain-generator.ts --outDir app/contracts './node_modules/neufund-contracts/build/contracts/*.json'


Update drupal.yml

To enable islandora_search.
Adding instructions to test soon.

Closing this for now.  Created this issue: https://github.com/Islandora-CLAW/CLAW/issues/1100


[OCCM] Set Hostname in load balancer status when using PROXY protocol

What this PR does / why we need it:
Related issues in other repos:

https://github.com/kubernetes/kubernetes/issues/66607
https://github.com/kubernetes/ingress-nginx/issues/3996

In PROXY mode, set Hostname field using IP address and a suffix .nip.io to expose the Service of LoadBalancer type.
A new config option enable-ingress-hostname is introduced but may be removed in the future, please see the document change.
Which issue this PR fixes(if applicable):
fixes #1287
Special notes for reviewers:

Release note:

[openstack-cloud-controller-manager] Fixed the broken header issue when accessing the load balancer service with PROXY protocol enabled from within the cluster.

/test cloud-provider-openstack-acceptance-test-lb-octavia

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.19

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.18

/test cloud-provider-openstack-acceptance-test-lb-octavia

/test cloud-provider-openstack-acceptance-test-lb-octavia

@lingxiankong if this https://github.com/kubernetes/kubernetes/pull/97681 some day arrives, it will solve this issue also

/test cloud-provider-openstack-acceptance-test-lb-octavia

The Set hostname task in the ansible role cloud-instance-hostname is quite unstable. We'd better fix that first to make our jobs reliable.
2021-03-19 05:18:52.064876 | TASK [cloud-instance-hostname : Hostname | Set hostname]
2021-03-19 05:18:52.989693 | k8s-node-2 | ERROR
2021-03-19 05:18:52.990325 | k8s-node-2 | {
2021-03-19 05:18:52.990415 | k8s-node-2 |   "msg": "Command failed rc=1, out=, err=Failed to create bus connection: No such file or directory\n"
2021-03-19 05:18:52.990490 | k8s-node-2 | }

The Set hostname task in the ansible role cloud-instance-hostname is quite unstable. We'd better fix that first to make our jobs reliable.
2021-03-19 05:18:52.064876 | TASK [cloud-instance-hostname : Hostname | Set hostname]
2021-03-19 05:18:52.989693 | k8s-node-2 | ERROR
2021-03-19 05:18:52.990325 | k8s-node-2 | {
2021-03-19 05:18:52.990415 | k8s-node-2 |   "msg": "Command failed rc=1, out=, err=Failed to create bus connection: No such file or directory\n"
2021-03-19 05:18:52.990490 | k8s-node-2 | }

Hopefully this could help.

/test cloud-provider-openstack-acceptance-test-lb-octavia

/test cloud-provider-openstack-acceptance-test-e2e-conformance

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.20

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.19

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.18

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.19

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.19

@jichenjc @ramineni please help review this PR

Thanks. changes looks ok to me .
/lgtm

/approve
thanks~

Looks like this breaks external-dns, which sees that status.loadBalancer.ingress[].hostname (of the service or of an ingress resource if you use an ingress controller with the service) now contains <IP>.nip.io instead of just <IP> and as a consequence deletes the A record (removing the service from DNS) and tries to create a CNAME record, which DNS APIs (only tested Openstack Designate for now, but probably true for others as well) reject because apparently RFC 1033 forbids CNAME records with the same name as other records (and external-dns already creates a TXT record with the same name).
time="2021-04-12T12:40:47Z" level=info msg="Creating records: ingresstest.scratch.io-multi.de./CNAME: <IP_ADDRESS>.nip.io."
time="2021-04-12T12:40:47Z" level=info msg="Creating records: ingresstest.scratch.io-multi.de./TXT: \"heritage=external-dns,external-dns/owner=default,external-dns/resource=ingress/ingress-test/ingress-test\""
time="2021-04-12T12:40:48Z" level=info msg="Deleting records for ingresstest.scratch.io-multi.de./A"
time="2021-04-12T12:40:48Z" level=error msg="Bad request with: [POST https://designate.cloud.syseleven.net:9001/v2/zones/7b2f1706-e0d3-4bb3-8400-7ecc78eb463c/recordsets], error message: {\"message\": \"CNAME recordsets may not share a name with any other records\", \"code\": 400, \"type\": \"invalid_recordset_location\", \"request_id\": \"req-949d736b-1e8a-4e53-a423-3048c8da55ea\"}"

Hi @multi-io, I'm not familiar with external-dns, but if using external-dns, I would assume the pod is using dns (rather than external IP) to access the service, so without enabling the config enable-ingress-hostname, that would work, right?

Hi @lingxiankong, external-dns just connects to some external DNS service like route53 and sets up DNS records for your ingress hostnames, pointing to the LB IP. The pod looks up those names and they resolve to the LB IP, which the pod then tries to connect to, which will fail without the new enable-ingress-hostname config enabled. But with this config enabled,
the status.loadBalancer.ingress[].hostname of a service or ingress resource  now contains <IP>.nip.io instead of just <IP>, which causes external-DNS to try to create a CNAME record for <IP>.nip.io instead of just an A record for <IP>, and this breaks because the CNAME record clashes with a TXT record of the same name that external-dns also creates for internal purposes (storing some metadata). I've created a PR to external-DNS that circumvents this, see https://github.com/kubernetes-sigs/external-dns/pull/2049 for more information.

Thanks for the detailed clarification, I understand now.
Yes, this workaround doesn't work properly with external-dns, to fully fix this issue, we have to wait for the k8s upstream solution. I will propose a PR to add something in the doc.


Whitebox.invokeMethod must be able to run methods in a super class.

From<EMAIL_ADDRESS>on October 28, 2008 13:51:53
Whitebox.invokeMethod should be able to execute a private method in
somewhere in the class hierarchy. For example if one creates an anonymous
inner class of the class under test to override some public methods you'd
still like to be able to invoke private methods in the "concrete class".
Original issue: http://code.google.com/p/powermock/issues/detail?id=48

From<EMAIL_ADDRESS>on October 28, 2008 05:55:04
Actually this already works by using the invokeMethod(Object tested, Class
declaringClass, String methodToExecute, Object... arguments) method. However we
should add a invokeMethod(Object tested, Class declaringClass, String
methodToExecute, Class<?>[] argumentTypes, Object... arguments) as well.

From<EMAIL_ADDRESS>on October 29, 2008 00:08:55
Labels: -Priority-High Priority-Critical

From<EMAIL_ADDRESS>on October 29, 2008 07:54:18
Status: Fixed


Adding Travis Continuous Integration

On the long run, CI is needed. Travis can be setup but I am not sure if it is needed now.
I feel if we have code_quality lints, it is good to setup and run the script once on Travis.
Anyways, I need your views @jgraham @martiansideofthemoon

I think this is the next step, now that wptview is growing.

fixed in a series of commits following the PR


Adding library to PATH

Currently (nearly) all our scripts add this code if they want to use a library:
local path = finale.FCString()
path:SetRunningLuaFolderPath()
package.path = package.path .. ";" .. path.LuaString .. "?.lua"

These lines are not necessary with RGP Lua, since it automatically does this anyway. And they are easy enough to get rid of with JW Lua, simply by adding the src path to its require paths. Given that we no longer require end-users to even have the libraries, I am wondering if we need to keep these in our scripts.

The only reason why we'd need this is if any developers for this repo are still using JW Lua. But since it's an easy fix for JW Lua developers (and we should all probably switch to RGP Lua anyways), I'll go ahead and create a PR to remove these.


Concerns about performance and FixedUpdate

Hi!
Earlier I had some thoughts about ROS - Unity communication performance (see https://github.com/siemens/ros-sharp/issues/55), and I've now done some more testing and want to share the results. I also have some concerns about one test which I'd like some feedback on if possible.
Scripts
I am appending the scripts used in this issue: 2 C# Unity scripts using ROS#, 1 C++ and 1 CMakeLists.txt file to create a ROS package.
C#/Unity
Files: unity.zip

SimplifiedPublisher - Publishes a string. The publication can be set to occur either every time FixedUpdate is called; or to be related to a call to a trigger method. If the PublicationType enum is set to FixedUpdateTrigger, the trigger method will make sure the message is published the next time a FixedUpdate callback is called. If it is set to FastTrigger, the message will be published immediately.
SimplifiedPublishSubscriber - Calls the trigger method of the SimplifiedPublisher script when a string message is received.

C++/ROS
Files: ros.zip

listen_and_talk.cpp - ROS node that subscribes to the /unity_talker topic, and publishes "ros" to the /ros_talker topic each time a message is received.
CMakeLists.txt - CMakeLists

To compile into a ROS node (execute at the top level of a Catkin workspace):
cd src
catkin_create_pkg unity_listener std_msgs roscpp
cp [path to unity_listener.cpp] unity_listener/src
cp [path to CMakeLists.txt] unity_listener
cd ..
catkin_make

and run using
rosrun unity_listener unity_listener

Tests
I think all of these tests should be simple to reproduce using the scripts provided above. All test cases use a Unity scene with a single GameObject, which is described under each subsection. Test cases 2 and 3 also uses the ROS node provided.
All frequencies have been measured using the ROS command:
rostopic hz /topic_name

Test case 1: One-way communication

Unity scene
RosConnector GameObject with the following components

RosConnector
SimplifiedPublisher publishing the string "unity" to the /unity_talker topic. Configured to use the FixedUpdate publication type.

Results
I ramped down the time step using Edit -> Project Settings -> Time, and the maximum stable frequency achieved was about 4000 Hz.
Test case 2: Two-way communication outside of FixedUpdate

Unity scene
RosConnector GameObject with the following components

RosConnector
SimplifiedPublishSubscriber subscribed to the /ros_talker topic.
SimplifiedPublisher publishing the string "unity" to the /unity_talker topic. Configured to use the FastTrigger publication type.

ROS node
Uses the unity_listener node described under the Scripts section.
Notes
You might have to start the communication by manually sending a message to either topic, using for example:
rostopic pub /unity_talker std_msgs/String "data: 'xxx'" --once

Results
The frequency lies around 1000 Hz.
Test case 3: Two-way communication using FixedUpdate

Unity scene
Same as Test case 2, but with the SimplifiedPublisher configured to use the FixedUpdateTrigger publication type.

ROS node
See Test case 2.
Results
The frequency never goes above 60 hz, even when the time step is ramped down. Setting a time step above 1/60 makes the frequency go down accordingly.
Analysis
Test case 1 shows that FixedUpdate is able to publish at an approximate rate of about 4000 messages/second. Test case 2 shows that it is possible to communicate between ROS and ROS# at a rate of about 1000 message/second. Therefore I do not understand why the results look like they do for Test case 3. I also tried to alter the SimplifiedPublisher script to publish to a second topic during Test case 3, and it was able to publish at a rate similar to Test case 1. Do you have any thoughts on this, or if there are other test cases I can make to shed some light?

Noticed I posted this on my work account. My private account is: https://github.com/hassanbot

Another observation: I tried changing the refresh rate of my screen during Test case 3, and the frequency of the messages changed accordingly. It seems like there's a connection to the Update() callback somewhere.

The only idea I have is that physic timing is deactivated as you are having an empty scene.
Would you put a rigidbody in where iskinematic is disabled and see what happens?
You can also try and simplify the test: Remove ROS# and call a Debug.Log message every FixedUpdate() instead. It should also have  that 1/60 frequency.

@hassanbot please feel free to adjust your test scripts to use the new RosBridgeClient code.
Though we have not started updating the Unity3D project yet, the refactoring of RosBridgeClient itself is completed (#59).
The ClientWebSocket ReceiveAsync method requires to specify a buffer size for the answer. This parameter is missing in websocket-sharp (at least I never set it). Message buffer size might be the reason for this issue we are having here.

We also performed some performance tests and noticed that the [WebSocketNetProtocol] (
https://github.com/siemens/ros-sharp/blob/master/Libraries/RosBridgeClient/Protocols/WebSocketNetProtocol.cs) has ratehr strong speed fluctuations. WebSocketSharpProtocol by contrast has a relatively constant perfomance with transfer rates which are qual to the best rates of [WebSocketNetProtocol] (
https://github.com/siemens/ros-sharp/blob/master/Libraries/RosBridgeClient/Protocols/WebSocketNetProtocol.cs).
We want to learn more about the reason of these speed fluctuations: Is it due to our WebSocketClient implementation? Or due to the ClientWebSocket class?

We also performed some performance tests and noticed that the WebSocketNetProtocol has ratehr strong speed fluctuations. WebSocketSharpProtocol by contrast has a relatively constant perfomance with transfer rates which are qual to the best rates of WebSocketNetProtocol.
We want to learn more about the reason of these speed fluctuations: Is it due to our WebSocketClient implementation? Or due to the ClientWebSocket class?

Lots of Garbage Collection going on, this is what can cause enormous performance spikes, since C# program has to be stopped in order to collect all the garbage.
It's produced by JSON serializator.

Hi @hassanbot ,
thank you for reporting your studies and your progress to this issue!
I'd suggest to go for Option 2. It works very well with Unity's built-in physics engine as follows:

set Physics.autoSimulation = false
trigger the next physics step via Physics.Simulate().
use an own timer to tigger physics similar to your code snipplet above

I did that in a non-public project to set up a co-simulation with some automation development software of my company. On the unity side the 3D Mechanics are calculated. If the AGX dynamics works similar to NVidia PhysX in Unity, we could easily switch between both physics engines depending on the application-specific needs.
Though I find this topic very interesting I agree that we have resolved this issue.
Thank you again for supporting this project!